我在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文件夹中,以过滤其他资源。
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/>部分下:
<build/>
<project> <build> <resources> <resource> <directory>${basedir}/src/main/resources/lib</directory> <filtering>false</filtering> </resource> </resources> <plugins> ... </plugins> </build> </project>