maven改class文件输出路径 <build> <directory>my_new_build_path</directory> </build> my_new_build_path处写class文件的路径,例如:src/main/webapp/WEB-INF maven会自动在这个路径前后拼接项目名和/classes, 形如:项目名/src/main/webapp/WEB-INF/clasess 注意:如果在eclipse的build path里改,当maven更新的时候,又恢复成默认的target/classes
问题二:src/main/resources里面配置文件加载不到webapp下classes里
通常src/main/resources里的Excluded 为**,先点击:Excluded,然后再点击:Remove
<build> <finalName>项目名称</finalName> <plugins> <!-- 更改maven默认的打包目录 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <webappDirectory>${basedir}/src/main/webapp</webappDirectory> <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory> <!-- <webResources> <resource> this is relative to the pom.xml directory <directory>WebContent</directory> </resource> </webResources> --> </configuration> </plugin> </plugins> </build>
———————————————— 原文链接:http://image109.360doc.com/DownloadImg/2019/10/3017/174456269_1_20191030052717237
如果这种办法不行,则可以试一试下面的办法 主要是Maven在构建的时候不会讲mapper文件夹下的xml拷贝过去,可以在pom.xml中添加如下配置。 将Java代码下的配置文件和resource下的配置文件都拷贝过去,错误即可解决。 <resources> <!--主要是拷贝资源文件下的配置文件--> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.tld</include> <include>**/*.jsp</include> </includes> <filtering>true</filtering> </resource> <resource> <!--主要是拷贝源码文件下的配置文件--> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> 转自 https://blog.csdn.net/h12kjgj/article/details/70312687 Maven的非web项目在执行时需要引用很多jar包,这时候通常的做法是将这些jar包统一放到lib目录中,maven的dependency插件可以帮我们做这件事情。 我们需要在pom文件的build节点的plugins节点内添加一个plugin,plugin内容如下:
<properties> <pro.outerDirectory>src/main/webapp</pro.outerDirectory> </properties> <build>
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>theMainClass</mainClass> </manifest> </archive> </configuration> </plugin>
上面配置中我们使用了maven-dependency-plugin插件,然后执行了(execution节点)copy-dependencies操作。我们指定的输出目录是:${project.build.directory}/lib,这里的${project.build.directory}就是我们通常看到的target目录,也就是要把jar复制到target目录下的lib目录下。 原文链接:http:///maven/FAQ/how-to-copy-dependency-to-lib-folder
本文利用Maven插件将依赖包、jar/war包及配置文件输出到指定目录
1. 使用 maven-dependency-plugin 插件将依赖包导出到指定文件夹 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <!--${project.build.directory} class的输出目录不做设置的话默认代表项目根目录的target目录; 也可以使用“自定义文件夹/自定义文件夹 例如:a/b”,也可以使用绝对路径如:“D:\test” --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> <includeScope>runtime</includeScope> </configuration> </execution> </executions> </plugin> </plugins> </build>
2. 使用 maven-war-plugin 插件将war打包到指定路径 打Jar包时,与此类似 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <outputDirectory>d:\test</outputDirectory> <!--表示将所有的webapps项目下的文件拷贝到相应路径--> <webappDirectory>d:\test</webappDirectory> </configuration> </plugin>
3. 使用 maven-jar-plugin 插件移除配置文件将其不打包进 jar 包中,并可以将打包后的 jar 包输出到指定路径 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <!-- 指定打包的jar包输出路径--> <outputDirectory> ${project.build.directory}/lib </outputDirectory> <!--不打入jar包的文件类型或者路径--> <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> <exclude>**/*.yml</exclude> <exclude>static/**</exclude> <exclude>templates/**</exclude> </excludes> </configuration> </plugin>
4. 使用 maven-resources-plugin 插件将需要复制的文件复制到指定路径(例:将配置文件提取到指定路径) <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <encoding>UTF-8</encoding> <!--打成jar包后复制到的路径--> <outputDirectory> ${project.build.directory}/conf </outputDirectory> <resources> <resource> <!--项目中的路径--> <directory>src/main/resources/</directory> </resource> </resources> </configuration> </execution> <!--可配置多个提取复制路径只需要 “<id>”名字不一样即可--> <execution> <id>copy-bulid</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <encoding>UTF-8</encoding> <outputDirectory> ${project.build.directory}/bin </outputDirectory> <resources> <resource> <directory>build/</directory> </resource> </resources> </configuration> </execution> </executions> </plugin>
使用 maven 命令执行打包命令 mvn clean package 转自 https://www.cnblogs.com/willvi624/p/9456239.html
|