有沒有辦法使用onejar-maven-plugin將任意類路徑條目添加到JAR文件清單?如何使用onejar Maven插件在清單中設置其他類路徑條目?
我找到了方法configure maven-jar-plugin to do this,但似乎沒有這樣的選項onejar-maven-plugin。
這不是爲了找到額外的類(否則爲什麼使用onejar插件,對嗎?),而是定位一個必須在JAR外部的配置文件。
有沒有直接的解決方案或解決方法呢?
有沒有辦法使用onejar-maven-plugin將任意類路徑條目添加到JAR文件清單?如何使用onejar Maven插件在清單中設置其他類路徑條目?
我找到了方法configure maven-jar-plugin to do this,但似乎沒有這樣的選項onejar-maven-plugin。
這不是爲了找到額外的類(否則爲什麼使用onejar插件,對嗎?),而是定位一個必須在JAR外部的配置文件。
有沒有直接的解決方案或解決方法呢?
真的需要單罐插件的用法嗎? 您可以實現相同的目標(使用以下方法在一個jar包中打包應用程序和所有必需的依賴項,包括可傳遞的依賴項,併爲Class-Path和使用更穩定/標準的插件添加配置):
一個JAR可執行文件的例子(不使用一個-JAR插件)可能如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<!-- your further configuration here -->
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.sample.MainApp</mainClass>
<!-- your further configuration here -->
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
如果您需要進一步的classpath和Maven玩,我會建議在stackoverflow上也檢查這個問題here。
Adding arbitrary manifest entries有可能在1.4.5:
<plugin>
<groupId>org.dstovall</groupId>
<artifactId>onejar-maven-plugin</artifactId>
<version>1.4.5</version>
<executions>
<execution>
<configuration>
<manifestEntries>
<Build-Status>Yes</Build-Status>
</manifestEntries>
</configuration>
<goals>
<goal>one-jar</goal>
</goals>
</execution>
</executions>
</plugin>
的onejar-maven-plugin項目似乎並沒有在積極發展了,所以你可能要(例如maven-assembly-plugin)最終切換到其他的解決方案。
該插件在Maven Central上不可用。其他人把它的一個版本發佈到Maven Central with a different group ID。
其他庫可以在啓動時添加到類路徑中。 屬性一jar.class.path可用於被添加到執行環境
一jar.class.path
額外類路徑。使用獨立於平臺的路徑分隔符'|'
實施例:--one-jar.class.path = 「./ LIB/two.jar | /opt/lib/three.jar」