🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

Maven copy 研究

引言:

由于没有使用过Maven和Ant,今天花了一下午的时间来研究把一个指定的文件copy到自己想要的文件夹中。。。
为什么要这样呢?
主要是因为applet部署在Tomcat上
其中applet的class 部署到Tomcat默认的WEB-INF中了,不能被访问到,开始的时候上网搜了许多
不知道是否是所说的认证和权限问题。。。
也做了一些research,后来不知道为什么就放弃了,于是现在需要把WEB-INF中的class copy出来到指定的可以由applet访问的
文件夹中。
today,什么也不想做,早上看了下news,下午便想到必须开工来弄一下这个了,于是google。。。



正文:
copy有很多中方法

1。maven-dependency-plugin

  1. <project>
  2.   [...]
  3.   <build>
  4.     <plugins>
  5.       <plugin>
  6.         <groupId>org.apache.maven.plugins</groupId>
  7.         <artifactId>maven-dependency-plugin</artifactId>
  8.         <executions>
  9.           <execution>
  10.             <id>copy-installed</id>
  11.             <phase>install</phase>
  12.             <goals>
  13.               <goal>copy</goal>
  14.             </goals>
  15.             <configuration>
  16.               <artifactItems>
  17.                 <artifactItem>
  18.                   <groupId>{project.groupId}&lt;/groupId&gt;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;{project.artifactId}</artifactId>
  19.                   <version>{project.version}&lt;/version&gt;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;type&gt;{project.packaging}</type>
  20.                 </artifactItem>
  21.               </artifactItems>
  22.               <outputDirectory>some-other-place</outputDirectory>
  23.             </configuration>
  24.           </execution>
  25.         </executions>
  26.       </plugin>
  27.     </plugins>
  28.   </build>
  29.   [...]
  30. </project>


2.maven-jar-plugin
  1. <project>
  2.   ...
  3.   <build>
  4.     <plugins>
  5.       <plugin>
  6.         <groupId>org.apache.maven.plugins</groupId>
  7.         <artifactId>maven-jar-plugin</artifactId>
  8.         ...
  9.         <configuration>
  10.           <archive>
  11.             <manifest>
  12.               <addClasspath>true</addClasspath>
  13.             </manifest>
  14.           </archive>
  15.         </configuration>
  16.         ...
  17.       </plugin>
  18.     </plugins>
  19.   </build>
  20.   ...
  21.   <dependencies>
  22.     <dependency>
  23.       <groupId>commons-lang</groupId>
  24.       <artifactId>commons-lang</artifactId>
  25.       <version>2.1</version>
  26.     </dependency>
  27.     <dependency>
  28.       <groupId>org.codehaus.plexus</groupId>
  29.       <artifactId>plexus-utils</artifactId>
  30.       <version>1.1</version>
  31.     </dependency>
  32.   </dependencies>
  33.   ...
  34. </project>


3.maven-antrun-plugin

  1. <build>
  2.         <finalName>beyondtrack-war</finalName>
  3.         <plugins>
  4.             <plugin>
  5.                 <!--
  6.                 copy jBPM designer applet and it's icom to war
  7.                 -->
  8.                 <groupId>org.apache.maven.plugins</groupId>
  9.                 <artifactId>maven-antrun-plugin</artifactId>
  10.                 <version>1.2</version>
  11.                 <executions>
  12.                     <execution>
  13.                         <id>prepare-dependencies-repackage-copy</id>
  14.                         <phase>generate-resources</phase>
  15.                         <goals>
  16.                             <goal>run</goal>
  17.                         </goals>
  18.                         <configuration>
  19.                             <tasks>
  20.                                 <copy todir="target/beyondtrack-war/classes/net/java/dev/beyondtrack/web/workflow/designer" overwrite="true">
  21.                                     <fileset dir="target/beyondtrack-war/WEB-INF/classes/net/java/dev/beyondtrack/web/workflow/designer"/>
  22.                                 </copy>
  23.                                 <copy todir="target/beyondtrack-war/classes/net/java/dev/beyondtrack/web/workflow/designer/icon" overwrite="true">
  24.                                     <fileset dir="src/main/java/net/java/dev/beyondtrack/web/workflow/designer/icon"/>
  25.                                 </copy>
  26.                             </tasks>
  27.                         </configuration>
  28.                     </execution>
  29.                 </executions>
  30.             </plugin>
经过使用,最终决定使用maven-antrun-plugin


理由:1.需要在该工程下面copy该工程中的某一小部分到另一文件夹中,groupId不知道要怎么填写(也许有方法,可能由于本人笨拙,才接触不知道怎么写)。。。因此没有使用maven-dependency-plugin
2.研究了一半,突然看到maven-antrun-plugin,发现比较好,上手快,于是就放弃了使用maven-jar-plugin。。。


总结:Maven 很强大。。。
plugin很多,使用时应尽快根据自己的需求找到合适该项目的plugin



作者:Vanessa
Blog:http:/blog.csdn.net/Vanessa219
Email & QQ:[email protected]


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

留下你的脚步