mavenbuild配置,输出⽬录,插件
maven profile 读取不同配置
1. 项⽬结构
resources
1. deploy
1. env-dev.properties(开发环境)
2. env-prd.properties(⽣产环境)
3. env-sit.properties(测试环境)
2. properties
1. system.properties
2. l 配置
1. profile配置
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
<!-- 指定连接⽂件 -->
<!--<exclude-config>l</exclude-config>-->
</properties>
<!--默认dev环境-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>sit</id>
<properties>
<env>sit</env>
</properties>
</profile>
<profile>
<id>prd</id>
<properties>
<env>prd</env>
</properties>
</profile>
2. build 配置
<build>
<!--构建项⽬1:构建后的项⽬名称-->
<finalName>${project.artifactId}-${project.version}</finalName>
<!--构建项⽬2:引⽤环境隔离⽂件-->
<filters>
<filter>src/main/resources/deploy/env-${env}.properties</filter>
</filters>
<!--构建项⽬3:项⽬各⽂件加载路径-->
<!-- filtering,构建过程中是否对资源进⾏过滤,默认false -->
<!-- filters,给出对资源⽂件进⾏过滤的属性⽂件的路径,默认位于${basedir}/src/main/filters/⽬录下。属性⽂件中定义若⼲键值对。在构建过程中,对于 <resources>
<resource>
<directory>src/main/java</directory>
<includes>
<includes>
<include>**/*.xml</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<excludes>
<exclude>deploy/**</exclude>
<!--<exclude>${exclude-config}</exclude>-->
</excludes>
</resource>
</resources>
<!--给出构建过程中所⽤到的插件-->
<plugins>
<!--编译java代码配置-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<showWarnings>${showWarnings}</showWarnings>
<!--<skip>${sttest}</skip>-->
</configuration>
</plugin>
<!--处理配置⽂件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>maven打包本地jar包
<configuration>
<skip>${stTmp}</skip>
</configuration>
</plugin>
</plugins>
maven默认的输⼊输出⽬录()
构建Maven项⽬的时候,如果没有进⾏特殊的配置,Maven会按照标准的⽬录结构查和处理各种类型⽂件。
src/main/java和src/test/java
这两个⽬录中的所有*.java⽂件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes⽬录中,但是这两个⽬录中的其他⽂件都会被忽略掉。
src/main/resouces和src/test/resources
这两个⽬录中的⽂件也会分别被复制到target/classes和target/test-classes⽬录中。
当是web项⽬时,会在target下⽣成myproject⽬录,myproject是你的项⽬名
src/main/webapps
这个⽬录中的⽂件会被复制到target/myProject⽬录中
target/classes
默认会把这个⽬录中的所有内容复制到target/myProject/WEB-INF/classes⽬录中
Dependency
默认会将项⽬的依赖复制到target/myProject/WEB-INF/lib
maven⽣命周期()
各个插件的执⾏顺序⼀般是:1:clean、2:resources、3:compile、4:testResources、5:testCompile、6:test、7:jar、8:install
resource插件的功能就是把项⽬需要的配置⽂件拷贝到指定的⽬当,默认是拷贝src\main\resources⽬录下的件到classes⽬录下
compile插件执⾏时先调⽤resouces插件,功能就是把src\mainjava源码编译成字节码⽣成class⽂件,并把编译好的class⽂件输出到target\classes⽬录下
单元测试所⽤的compile和resources插件和主代码是相同的,但执⾏的⽬标不⾏,⽬标estCompile和testResources是把src\test\java 下的代码编译成字节码输出到target\test-classes,同时把src\test\resources下的配置⽂件拷贝到target\test-classes。
打包插件
这个插件是把class⽂件、配置⽂件打成⼀个jar(war或其它格式)包。依赖包是不在jar⾥⾯的,需要建⽴lib⽬录,且jar和lib⽬录在同级⽬录。常⽤的打包插件有maven-jar-plugin、maven-assembly-plugin、maven-shade-plugin三种,下⾯分别介绍下各⾃⼰pom配置和使⽤特点。
发布插件的功能就是把构建好的artifact部署到本地仓库,还有⼀个deploy插件是将构建好的artifact部署到远程仓库。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论