您的位置:首页 > 其它

Maven Plugins

2016-09-08 19:55 627 查看

maven-compiler-plugin

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<!--设置该参数后,使用这个jar的工程的JDK则必须是1.8+,否则编译不通过-->
<!--该参数主要用于设定使用该jar包的jdk版本,比如有些jar只能在jdk8上运行编译,使用了jdk8的某些新的特性-->
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>


maven-war-plugin

通过warSourceExcludes和packagingExcludes参数可以在打包是忽略掉指定的文件。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<!--xxx目录位于webapp目录下-->
<warSourceExcludes>xxx\**</warSourceExcludes>
</configuration>
</plugin>


overlay

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warName>cas-server</warName>
<overlays>
<overlay>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-webapp</artifactId>
<!--排除cas-server-webapp中的文件,使用自己的配置文件-->
<excludes>
<exclude>WEB-INF/cas.properties</exclude>
<exclude>WEB-INF/classes/log4j.xml</exclude>
<exclude>WEB-INF/web.xml</exclude>
</excludes>
</overlay>
</overlays>
</configuration>
</plugin>


jetty-maven-plugin

<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.0.0.v20130308</version>
<configuration>
<httpConnector>
<port>10011</port>
</httpConnector>
<webApp>
<contextPath>/</contextPath>
<!--该参数在使用overlay时添加,解决Duplicate fragment name ERROR问题-->
<!--通常情况下不需要该配置-->
<allowDuplicateFragmentNames>true</allowDuplicateFragmentNames>
</webApp>
<stopKey>stop</stopKey>
<stopPort>10012</stopPort>
</configuration>
</plugin>


热部署配置

<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.0.0.v20130308</version>
<configuration>
<!--热部署不需要该参数,该参数用于修改配置文件后自动重启(不清楚这参数的意义,反正热部署用不到)-->
<!--<scanIntervalSeconds>10</scanIntervalSeconds>-->
<httpConnector>
<port>8080</port>
</httpConnector>
<webApp>
<contextPath>/</contextPath>
<!--配置该参数,修改webdefault.xml,才能修改静态文件-->
<defaultsDescriptor>src/test/resources/webdefault.xml</defaultsDescriptor>
</webApp>
<stopKey>stop</stopKey>
<stopPort>8889</stopPort>
</configuration>
</plugin>


webdefault.xml 存在于jar包中,复制到src/test/resources下,并修改属性useFileMappedBuffer:

\org\eclipse\jetty\jetty-webapp\9.0.0.v20130308\jetty-webapp-9.0.0.v20130308.jar\org\eclipse\jetty\webapp\webdefault.xml

把useFileMappedBuffer的值从true改为false即可:

<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>


热部署方法:

开发工具IDEA

使用Debug模式启动jetty, 修改java文件后,手动编译该文件即可,IDEA会显示jetty: reloaded class

手动编译的方式:

Ctrl+F9 :Make Project, 编译整个工程,用于一次修改多个java文件的情况

Ctrl+Shift+F9 :编译单个文件

注意这里使用的是jetty plugin启动的项目,如果使用外部的jetty server,或者tomcat server,应该有自动编译的选项,不需要手动编译。当然手动编译也是可以热部署的。

还有一点,这种方式不支持修改方法名或者新增方法的热部署。

jetty命令:

## jetty.reload默认值也是automatic,通常我们只需要jetty:run,在特殊常见下,也是可以以下面的方式启动jetty
jetty:run -Djetty.reload=automatic -Djetty.scanIntervalSeconds=10


maven-assembly-plugin

The Assembly Plugin for Maven is primarily intended to allow users to aggregate the project output along with its dependencies, modules, site documentation, and other files into a single distributable archive.

To use the Assembly Plugin in Maven, you simply need to:

choose or write the assembly descriptor to use,
configure the Assembly Plugin in your project's pom.xml, and
run "mvn assembly:single" on your project.


链接

duplicate-fragment-name-error-jetty-maven-plugin

关于maven-jetty-plugin 自动重启问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven plugins