分享

maven 配置 问题 改class路径 配置文件路径

 一本正经地胡闹 2019-10-30

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多