相关疑难解决方法(0)

使用Maven复制文件的最佳做法

我有配置文件和各种文档,我想使用Maven2从开发环境复制到dev-server目录.奇怪的是,Maven在这项任务中看起来并不强大.


一些选项:

  • 在Maven中简单使用复制任务

__CODE__

  • 使用Ant插件从Ant 执行复制.

  • 构造一个zip类型的工件,以及POM的"主"工件(通常是jar类型),然后将该工件从存储库解压缩到目标目录中.

  • maven-resources插件,如下所述.

  • Maven Assembly插件 - 但是当我想简单地"按常规"做事时,这似乎需要大量的手动定义.

  • 这个页面甚至展示了如何构建一个进行复制的插件!

  • maven-upload插件,如下所述.

  • 带有副本的maven-dependency-plugin,如下所述.


所有这些看起来都是不必要的:Maven应该擅长完成这些标准任务,而不用大惊小怪.

有什么建议?

build-process maven-2 release-management maven

183
推荐指数
7
解决办法
27万
查看次数

通过maven-antrun-plugin使用antcontrib <if>任务

我的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)

java ant-contrib maven maven-antrun-plugin

15
推荐指数
2
解决办法
2万
查看次数

如何使用 Maven 从模板生成源代码?

我有一个包含令牌列表的文件:

令牌.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
  • BarMyInterface.java
  • BazMyInterface.java

生成的源文件之一如下所示:

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 做到这一点?

java code-generation maven

5
推荐指数
1
解决办法
4367
查看次数