idea gradle工程怎么打jar包

idea gradle工程怎么打jar包,第1张

一 Idea打包jar

因为本人用的开发环境是IntelliJ IDEA,开始的时候研究了一下利用这个开发工具进行打包

首先按F4或者点击IDEA右上角这地方

进入项目结构管理器

选择这里面的Artifacts。开始我完全不知道Artifacts是什么东西,后来查阅了点资料:Artifacts是maven中的一个概念,表示某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式;意思我理解的就是Artifacts就是告诉我们的程序因该如何打包这个项目。

之后新建一个Artifacts

这有两个选项选择第二个,从模块中引入,点击进去后会有一些设置,如下:

module是你需要打成jar包的项目

MainClass是运行的主函数,如果不需要运行则可以不选择

jarfilesfromlibraries是项目打包的方式,下面选项大致的含义:

1:extracttothetargetjar:把所有文件倒入进一个jar包里

2:copytothe。。。。:把项目的依赖包导出和项目一个目录,通过MANIFESTMF文件来引用jar包。

这里如果你的项目需要打成一个可运行的jar包推荐第二种,反之第一种。

设置完之后,就会新建一个xxx:jar,并进入进入xxx:jar的编辑页面

在我们需要进行一个输出目录布局的设置,我们可以看到,已经编译好的项目的jar文件(我的是eachendjar)和其他导入的jar包混到一起的,很杂,我是点击outputlayout下最左边的文件夹图标新建了一个lib文件,把其他jar包拖拽进来(建议,也可以直接点OK完成)

但是我们这样做的话依赖的jar包的目录就会产生变化,这时候我们需要选中我们项目,在下方然后修改MANIFESTMF中的Class Path

修改成OK

到了这一步后Artifacts是写好了,保存之后就可以用来生成jar文件

点击build Artifacts后选择你刚刚生成的artifacts

build后就会在out的目录下生成对应的jar文件

最后进入项目目录输入命令java -jar XXXjar就可以跑起来了如下

二gradle打包jar

本以为项目打成jar包并且可以完美运行了后,这事就差不多完了,可是项目组长说:你这样打包是可以,但是如果其他人用Eclipes来开发的话,就不管用了。。。。。。哎,好不容易搞出来的一个方法被pass掉了,无奈之下就只有另换方法。

因为项目我是用的gradle构建的,第一时间想起了用gradle打包。

利用gradle进行打包其实非常非常简单,但是因为我平常只是简单用它来导包,以及构建项目,它的基本的一些东西不是很清楚,所以走了些弯路花了大半天的时间才搞出来,所以说有时候需要了解一下你所用的东西的一些基础和原理。

在build,gradle中首先需要加上

apply plugin: 'java'

apply plugin: 'idea'

来定义你自己项目使用的插件,apply plugin: 'idea'用于把项目构建成idea项目,apply plugin: 'java'用于添加Java插件,以及一些内置任务,打包jar就要用到这里的插件。

version = '10'

repositories {

mavenCentral()

}

这里用来声明版本号以及添加maven中心仓库地址

dependencies {

compile 。。。。。。。

}

这里来添加项目所需要的依赖包

jar {

String someString = ''

configurationsruntimeeach {someString = someString + " lib//"+itname} //遍历项目的所有依赖的jar包赋值给变量someString

manifest {

attributes 'Main-Class': 'comeachdubboMainEnd'

attributes 'Class-Path': someString

}

}

打包的时候,这个地方很重要,用来设置jar文件的相关属性,这个地方把我坑了有点久,最后补了下gradle的基础知识,就搞出来了,这篇博客写gradle基础写的还可以,推荐给大家看看>

只需要编译打包groovy脚本 所以只需要创建 src/main/groovy目录结构。

例子:

gradle_groovy_archive项目 结构是:

gradle_groovy_archive

创建helloWorldgroovy脚本,代码如下:

package hello

println 'Gradle compile groovy'创建Gradle构建文件:

apply plugin: 'groovy'

apply plugin: 'maven'

group = 'comhello'

archiveBaseName = 'hello'

version = '01-SNAPSHOT'

defaultTasks 'clean', 'jar'

configurations {

deployerJars

}

repositories {

mavenCentral()

}

dependencies {

//使用本地groovy环境

groovy localGroovy()

//groovy group: 'orgcodehausgroovy', name: 'groovy', version: '186'

compile fileTree( dir: 'lib', include: ['jar'])

deployerJars 'orgapachemavenwagon:wagon-webdav-jackrabbit:10-beta-7'

}

sourceSets {

main {

groovy {

srcDir 'src/main/groovy'

}

}

}

uploadArchives {

repositoriesmavenDeployer {

uniqueVersion = false

configuration = configurationsdeployerJars

repository(id : repositoryId, url : repositoryUrl) {

authentication (userName : 'deployment', password : 'deployment')

proxy()

}

}

}创建构建文件属性文件:

//根据不同情况修改

repositoryId=ND

repositoryUrl=ND

systemProp>

高效构建渠道

渠道包就是要在安装包APK中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场,360市场,应用宝市场等,需要为每个apk包设定一个可以区分渠道的标识,为这个apk包设定应用市场标识的过程就是多渠道打包

国内存在着众多的应用市场,产品在不同的渠道可能有不同的统计需求,为此Android开发人员需要为每个应用市场发布一个安装包,在安装包中添加不同的标识,应用在请求网络的时候携带渠道信息,方便后台做运营统计

1在项目根目录添加插件

2在项目根目录新建渠道列表flavor_channeltxt

3根目录新建flavor_channelgradle

4在app下的buildgradle文件中应用

5读取渠道信息

通过helper类库中的ChannelReaderUtil类读取渠道信息

点击gradle的channelRelease就会自动构建打包

上图中的release文件中就是所有的渠道包了

在flavor_channelgradle文件中添加rebuildChannel,如下图

根据已有基础包重新生成多渠道包,若是根据已有基础包重新生成多渠道包,首先要配置渠道文件、基础包的路径和渠道包的输出目录

配置成功后

上图目录中就是渠道包了,是基于360加固包打的多渠道包

需要用到2个文件,项目的buildgradle文件和自动化shell脚本(这里我们命名为autosh)

一、修改buildgradle文件

新增task配置节,注意buildgradle和Dockerfile在同一目录下

二、新增autosh

以上就是关于idea gradle工程怎么打jar包全部的内容,包括:idea gradle工程怎么打jar包、Jenkins+Gradle+Github实现Android自动化打包、如何使用gradle构建工具打包groovy脚本成jar文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10211928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存