我有配置文件和各种文档,我想使用Maven2从开发环境复制到dev-server目录.奇怪的是,Maven在这项任务中看起来并不强大.
一些选项:
__CODE__
使用Ant插件从Ant 执行复制.
构造一个zip类型的工件,以及POM的"主"工件(通常是jar类型),然后将该工件从存储库解压缩到目标目录中.
maven-resources插件,如下所述.
Maven Assembly插件 - 但是当我想简单地"按常规"做事时,这似乎需要大量的手动定义.
这个页面甚至展示了如何构建一个进行复制的插件!
maven-upload插件,如下所述.
带有副本的maven-dependency-plugin,如下所述.
所有这些看起来都是不必要的:Maven应该擅长完成这些标准任务,而不用大惊小怪.
有什么建议?
我的maven java项目使用maven-antrun-plugin来执行部署我的应用程序的deploy.xml ant脚本.deploy.xml使用该<if>任务,这似乎导致了问题;
[INFO]执行任务
[taskdef]无法从资源net/sf/antcontrib/antlib.xml加载定义.它无法找到.部署:
[INFO] --------------------------------------------- ---------------------------
[ERROR] BUILD ERROR
[INFO] --------------- -------------------------------------------------- -------
[INFO]发生了Ant BuildException:执行此行时发生以下错误:
E:\ My_Workspace\xxxxxx\xxxxxx\xxxxxxx\deploy.xml:24:问题:创建任务或类型失败如果
原因:名称未定义.
行动:检查拼写.
操作:检查是否已声明任何自定义任务/类型.
操作:检查是否已发生任何<presetdef>/<macrodef>声明.
这是我的pom的antrun插件配置;
<plugin>
<inherited>false</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>remote-deploy</id>
<phase>install</phase>
<configuration>
<tasks>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath"/>
<property name="compile_classpath" refid="maven.compile.classpath" />
<property name="runtime_classpath" refid="maven.runtime.classpath" />
<property name="plugin_classpath" refid="maven.plugin.classpath" />
<echo message="compile classpath: ${compile_classpath}"/>
<echo message="runtime classpath: ${runtime_classpath}"/>
<echo message="plugin classpath: ${plugin_classpath}"/>
<ant antfile="${basedir}/deploy.xml">
<target name="deploy" />
</ant>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant-contrib</groupId> …Run Code Online (Sandbox Code Playgroud) 我有一个包含令牌列表的文件:
令牌.txt
foo
bar
baz
Run Code Online (Sandbox Code Playgroud)
和一个模板文件:
模板.txt
public class @token@MyInterface implements MyInterface {
public void doStuff() {
// First line of generated code
// Second line of generated code
}
}
Run Code Online (Sandbox Code Playgroud)
我想生成以下源代码文件target/generated-sources/my/package:
生成的源文件之一如下所示:
FooMyInterface.java
public class FooMyInterface implements MyInterface {
public void doStuff() {
// First line of generated code
// Second line of generated code
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能用 Maven 做到这一点?