我在Maven项目中遇到问题,在该项目中我从src / main / resources / lib文件夹分发dll。
使用maven-assembly-plugin将项目构建为具有依赖项的单个jar。
不幸的是,maven进程在复制过程中损坏了我的dll库,因此它们不再对应用程序有用。
我看过诸如资源过滤之类的概念。
这是我相关的pom.xml
有人有什么想法吗?
我想我需要做这样的事情,但到目前为止,它对我来说没有用。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<resources>
<resource>
<directory>${basedir}/src/main/resources/lib</directory>
<filtering>false</filtering>
</resource>
</resources>
<archive>
<manifest>
<mainClass>de.bochumuniruhr.psy.bio.behaviourcoder.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
我的最终解决方案(基于以下答案):
谢谢您的出色回答。我最终得到了不需要扩展maven-resources-
plugin的配置的答案。我将我的二进制文件放置在该src/main/resources/unfiltered- resources
文件夹中,以过滤其他资源。
这是源代码的链接。
以下是撰写本文时我最后的工作pom。
<build>
<finalName>BehaviourCoder_${git.build.time}_${git.commit.id.describe-short}</finalName>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/unfiltered-resources</directory>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.2.2</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<injectAllReactorProjects>true</injectAllReactorProjects>
<dateFormat>yyyy-MM-dd_HHmmss</dateFormat>
<dateFormatTimeZone>UTC</dateFormatTimeZone>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>de.bochumuniruhr.psy.bio.behaviourcoder.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
这部分:
<resources>
<resource>
<directory>${basedir}/src/main/resources/lib</directory>
<filtering>false</filtering>
</resource>
</resources>
应该在这样的<build/>
部分下:
<project>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources/lib</directory>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
...
</plugins>
</build>
</project>
我在一个maven项目中遇到了一个问题,在这个项目中,我从src/main/Resources/lib文件夹分发dlls。 该项目使用maven assembly插件构建为一个具有依赖项的jar。 不幸的是,maven进程正在复制过程中损坏我的dll库,因此它们对应用程序不再有用。 我已经了解了资源过滤等概念。 这是我的相关pom。xml 有人有什么想法吗? 我想我需要做一些像这样的事情,但到目前
我正在为我的maven项目添加一个可执行的jar测试。我已经编辑了pom文件,以使用src/main/resources中的一个主类。但是,当我尝试运行jar时,它找不到我的主类。有什么想法吗?
您好,我正在我的java应用程序中使用来自src / main /resources的配置文件。我在课堂上读到它,就像这样: 所以现在我用maven使用来构建这个。这是我的pom中的位.xml: 所以当我运行我的应用程序时,我得到了这个错误: 但是当我右键单击组装好的罐子时,我可以看到里面,有人知道我做错了什么吗?
我在我的maven项目中的src/main/资源下放置了一个文件,文件名只是temp.txt. 当我试图打开文件时: 我得到一个错误: src/main/资源下的所有文件都放在maven下类路径的根文件夹中。那么为什么程序不能在这里找到文件呢?
我有一个目录结构如下的maven模块,我想在中获取的路径 我使用进行了尝试,但它给出了一个空值。 无法获取资源的路径
问题内容: 您好,我在Java应用程序中使用了src / main / resources中的配置文件。我在我的课堂上这样阅读: 因此,现在我使用Maven使用Maven进行构建。这是我的pom.xml中的内容: 因此,当我运行我的应用程序时,出现此错误: 但是,当我右键单击组装好的罐子时,我可以在里面看到它,有人知道我做错了吗? 问题答案: 来自的资源将放置在类路径的根目录中,因此您需要按以下方