首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用maven-assembly-plugin设置类路径

无法使用maven-assembly-plugin设置类路径
EN

Stack Overflow用户
提问于 2013-03-28 23:01:50
回答 2查看 14.2K关注 0票数 11

我正在创建控制台应用程序。我希望将配置文件放在conf文件夹中的jar文件之外,并希望将此文件夹注册为我的应用程序的类路径。

我运行mvn assembly:single命令,得到一个jar文件,但是当我尝试用java -jar MyApplication.jar运行这个JAR时,它无法读取配置文件。

我的pom.xml中有以下代码片段

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-29 14:27:17

这是我的错,我不得不

代码语言:javascript
复制
<Class-Path>./conf/</Class-Path>

而不是

代码语言:javascript
复制
<Class-Path>.conf/</Class-Path>
票数 10
EN

Stack Overflow用户

发布于 2013-03-28 23:16:12

我通常不使用汇编插件在清单中生成类路径条目,而是使用以下配置的maven-jar-plugin:

代码语言:javascript
复制
<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来匹配您的程序集描述符依赖项目标。

关注

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15685196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档