从Maven创建jar文件

1 java jar maven

当我使用此命令时,我想创建一个没有SNAPSHOT原因的jar文件

mvn -f pom.XML package
Run Code Online (Sandbox Code Playgroud)

创建了两个文件“文件名_SNAPSHOT.jar和文件名_SNAPSHOT_WITH_dependencies.jar”。我想要文件名.jar,我知道我应该在pom.XML中进行编辑,因此我尝试添加此文件

mvn -f pom.XML package
Run Code Online (Sandbox Code Playgroud)

但是它创建了文件名name_SNAPSHOT_source.jar我该如何解决?

我的pom.XML这样的

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <model Version>4.0.0</model Version>
    <group Id>MyProject</group Id>
    <artifact Id>MyProject</artifact Id>
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging>
Run Code Online (Sandbox Code Playgroud)

Mar*_*szS 5

正确的方法是改变project.version。但是不建议这样做,因为开发jar应该具有带后缀的版本-SNAPSHOT

Maven在帮助您进行版本管理方面有很长的路要走,您经常会在版本中看到SNAPSHOT指示符,这表明项目处于开发状态

更多信息:

其他无需更改的解决方案project.version是使用property finalName。该解决方案version从工件中去除了全部。

<build>
 <finalName>${project.artifactId}</finalName>
</build>
Run Code Online (Sandbox Code Playgroud)

应用后,您pom.xml应如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.something</groupId>
  <artifactId>myproject</artifactId>
  <version>0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>My Project<name>
  <build>
     <finalName>${project.artifactId}</finalName>
  </build>
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

该属性finalName也适用于Maven Assembly Plugin

另请阅读: