我正在创建控制台应用程序。我希望将配置文件放在conf文件夹中的jar文件之外,并希望将此文件夹注册为我的应用程序的类路径。
我运行mvn assembly:single命令,得到一个jar文件,但是当我尝试用java -jar MyApplication.jar运行这个JAR时,它无法读取配置文件。
我的pom.xml中有以下代码片段
<build>
<finalName>MyApplication</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.7</version>
<configuration>
<projectNameTemplate>
[artifactId]-[version]
</projectNameTemplate>
<wtpmanifest>true</wtpmanifest>
<wtpapplicationxml>true</wtpapplicationxml>
<wtpversion>2.0</wtpversion>
<manifest>
${basedir}/src/main/resources/META-INF/MANIFEST.MF
</manifest>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.my.test.App</mainClass>
</manifest>
<manifestEntries>
<Class-Path>.conf/</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>发布于 2013-03-29 14:27:17
这是我的错,我不得不
<Class-Path>./conf/</Class-Path>而不是
<Class-Path>.conf/</Class-Path>发布于 2013-03-28 23:16:12
我通常不使用汇编插件在清单中生成类路径条目,而是使用以下配置的maven-jar-plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<archive>
<index>true</index>
<manifest>
<addClasspath>true</addClasspath>
<addExtensions>false</addExtensions>
<mainClass>com.my.test.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>我只使用程序集插件将依赖项(包括可传递的依赖项)复制到我的build目录中,并创建分发归档文件。你也可以使用依赖插件来做到这一点。如果您希望将依赖项复制到分发树的子目录中,请使用maven-jar-plugin配置中的classpathPrefix来匹配您的程序集描述符依赖项目标。
关注
https://stackoverflow.com/questions/15685196
复制相似问题