起因
Gradle是一個很好用的編譯工具。稍微有點不太方便的地方在于,有的開發(fā)環(huán)境只提供的Maven。所以有時候,我們需要利用 Gradle 生成 Maven 需要 POM.xml 文件
生成 pom.xml
打開 build.gradle 文件,增加 id 'maven' 這一行
plugins {
// Apply the java plugin to add support for Java
id 'java'
// Apply the application plugin to add support for building an application
id 'application'
// 增加下面這一行
id 'maven'
}
...
然后在終端下執(zhí)行
$ gradle install
成功后,會在 build目錄下的 poms 文件夾下生成 pom-default.xml,將其改名為 pom.xml 拷貝到項目的根目錄下即可。
調(diào)整 pom.xml 的內(nèi)容
打開上面生成的 pom.xml 可以發(fā)現(xiàn) groupId 是空的,原因是我們 build.gradle 文件中其實沒有這個內(nèi)容。
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId></groupId>
...
按照自己的需要填寫上需要的 group id
生成jar包執(zhí)行后,會發(fā)現(xiàn)系統(tǒng)提示沒有主清單屬性。這需要在 pom.xml 中添加 build 步驟用 maven plugin 來指定主class。下面的例子里,我們的主class是 "my.main.Appclass" 。
</project>
...
<build>
<plugins>
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>my.main.Appclass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
修改后,重新編譯,執(zhí)行就可以看到正確的結(jié)果了。