一:安装必要的环境软件,可以参考网上的资料;
源码连接: http://download.youkuaiyun.com/detail/yeshenrenjin/5053039
后面的排版发生错乱,大家参考源码工程阅读,效果比较好。
最后一个图总是显示不出来,放在这里
二: 使用maven模版创建工程;
1:使用框架创建工程;
点击完成;
2:生成工程如图所示:
3:添加config文件,作为配置文件夹,并将其作为“Use as source folder”(即:选中config文件,点击右键->BuildPath-->Use as source folder )
如图:
4: 添加新类文件
- public class InfoCollect {
- private String name;
- private int age;
- private String address;
- private String passWord;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getAddress() {
- return address;
- }
- public void setAddress(String address) {
- this.address = address;
- }
- public String getPassWord() {
- return passWord;
- }
- public void setPassWord(String passWord) {
- this.passWord = passWord;
- }
- }
5:在pom文件中添加spring相关的依赖
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring</artifactId>
- <version>2.5.6</version>
- </dependency>
- </dependencies>
我们在config目录下生成相关的配置文件:
如下:
- <bean id="infoCollect" class="com.netboy.maven.mavenDo.InfoCollect">
- <property name="name" value="netboy" />
- <property name="age" value="111" />
- <property name="address" value="hangzhou " />
- <property name="passWord" value="${password}" />
- </bean>
三: 运行程序
输出如下:
四: 自动打包并替换掉占位符
1: 在src/main目录下创建如图所示文件;
daily.properties 内容为: password = 111111
online.properties内容为: password = 222222
zip.xml内容为:
- <assembly
- xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
- <id>bin</id>
- <formats>
- 输出目标格式是zip
- <format>zip</format>
- </formats>
- <fileSets>
- <fileSet>
- ${project.basedir}约定为工程的根目录,将根目录下的指定文件拷贝到输出目标文件中的/目录下
- <directory>${project.basedir}</directory><outputDirectory>/</outputDirectory><includes><include>README*</include><include>LICENSE*</include><include>NOTICE*</include><include>run.sh</include></includes></fileSet><fileSet><directory>${project.basedir}/config</directory><outputDirectory>/config</outputDirectory><includes><include>*.properties</include><include>*.xml</include></includes>
- 拷贝的时候根据指定的filter进行替换占位符,然后将新生成的配置文件放到指定的目录下
- <filtered>true</filtered></fileSet><fileSet> 将指定目录下的文件copy到生成目标的指定目录下<directory>${project.basedir}/solr-home/conf</directory>
- <outputDirectory>/solr-home/conf</outputDirectory><includes><include>*.xml</include></includes></fileSet><fileSet><directory>${project.build.directory}</directory><outputDirectory>/lib</outputDirectory><includes><include>*.jar</include></includes><excludes><exclude>*-sources.jar</exclude></excludes></fileSet><fileSet><directory>${project.build.directory}/lib</directory><outputDirectory>/lib</outputDirectory><includes><include>*.jar</include></includes></fileSet></fileSets></assembly>
- 2: 添加相关打包插件依赖
- 如下所示:
- <build>
- <filters> 默认打包时使用daily.properties进行占位符替换
- <filter>src/main/assemble/daily.properties</filter>
- </filters>
- <resources>
- <resource>
- <directory>config</directory>
- <filtering>true</filtering>
- <includes>
- <include>*.xml</include>
- <include>*.properties</include>
- </includes>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-eclipse-plugin</artifactId>
- <version>2.7</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.3.2</version>
- 打包jar时排除掉 src/main/resources 下的xml和 properties
- <configuration>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- </excludes>
- </configuration>
- </plugin>
- <plugin> 打包copy依赖到指定目录下
- <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>
- <outputDirectory>${project.build.directory}/lib</outputDirectory>
- <overWriteReleases>true</overWriteReleases>
- <overWriteSnapshots>true</overWriteSnapshots>
- <overWriteIfNewer>true</overWriteIfNewer>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2</version>
- <configuration>
- <descriptors>
- <descriptor>src/main/assemble/zip.xml</descriptor>
- </descriptors>
- </configuration>
- <executions>
- <execution>
- <id>assembly</id>
- <phase>package</phase>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <profiles>
- <profile> 打daily环境部署的zip包
- <id>daily</id>
- <build>
- <filters>
- <filter>src/main/assemble/daily.properties</filter>
- </filters>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>一个package生命周期运行一次
- <goal>single</goal>
- </goals>
- <configuration>
- <descriptors>
- <descriptor>src/main/assemble/zip.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile> 打线上环境部署的zip包
- <id>online</id>
- <build>
- <filters>
- <filter>src/main/assemble/online.properties</filter>
- </filters>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <descriptors>
- <descriptor>src/main/assemble/zip.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
- </project>