起因
Gradle是一个很好用的编译工具。稍微有点不太方便的地方在于,有的开发环境只提供的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'
}
...
然后在终端下执行
$ gradle install
成功后,会在 build目录下的 poms 文件夹下生成 pom-default.xml,将其改名为 pom.xml 拷贝到项目的根目录下即可。
调整 pom.xml 的内容
打开上面生成的 pom.xml 可以发现 groupId 是空的,原因是我们 build.gradle 文件中其实没有这个内容。
<?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包执行后,会发现系统提示没有主清单属性。这需要在 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>
修改后,重新编译,执行就可以看到正确的结果了。
网友评论