Maven 2 Maven插件错误

Maven 2 Maven插件错误,maven-2,Maven 2,我是maven的新用户。我没有什么疑问 我有一些BAT文件必须通过maven执行 在执行默认命令时,我需要回显“StartedFirstTask”之类的状态 当任务失败时,用户应获得错误消息弹出窗口等 通过maven自动更新存储库 Maven调用ant构建*.war 将新创建的生成文件(*.war)复制到带有日期/时间的本地文件夹 自动从生成计算机上载/部署到服务器 测试特定URL/产品以测试站点流 正在发送有关部署状态的邮件 下面是我的示例pom.xml,它仅尝试(a) 4.0.0 co

我是maven的新用户。我没有什么疑问

  • 我有一些BAT文件必须通过maven执行

  • 在执行默认命令时,我需要回显“StartedFirstTask”之类的状态

  • 当任务失败时,用户应获得错误消息弹出窗口等

  • 通过maven自动更新存储库
  • Maven调用ant构建*.war
  • 将新创建的生成文件(*.war)复制到带有日期/时间的本地文件夹
  • 自动从生成计算机上载/部署到服务器
  • 测试特定URL/产品以测试站点流
  • 正在发送有关部署状态的邮件
  • 下面是我的示例pom.xml,它仅尝试(a)

    
    4.0.0
    com.example.maven
    测试
    1.0-快照
    战争
    测试
    http://maven.apache.org
    UTF-8
    朱尼特
    朱尼特
    3.8.1
    测试
    org.codehaus.mojo
    execmaven插件
    1.1.1
    执行官
    D:\
    “D:\test.bat”
    
    我想这不是预期的答案,但我认为您走的不是正确的道路,我不认为以您喜欢的方式使用Maven有什么意义。从您的描述中,我的印象是,您并没有真正采用Maven,而是试图将现有的东西插入其中,相信我,这不是开始使用Maven的最简单方法:

    • 这将增加一层额外的复杂性
    • 这需要对maven的工作方式有更深的理解,而不是“仅仅”采用它
    • 你将与该工具抗争(该工具很有可能获胜)
    • 这将带来更多的麻烦而不是好处
    我真的不知道从哪里开始,所以我将首先尝试快速介绍您的观点:

    我有一些BAT文件必须通过maven执行

    这是可能的,但这并不是真正的Maven方式(取决于逻辑,您应该将其移动到Maven或将其保留在Maven之外),我认为这不会非常健壮(尽管可能是错误的)。最重要的是,这已经需要一些关于(在哪里挂机)和插件配置的知识。从我所看到的(我不是故意粗鲁),你没有

    在执行默认命令时,我需要回显“StartedFirstTask”之类的状态

    这不是Maven的工作方式。Maven不像Ant那样是过程性的,Maven有约定,Maven是声明性的,Maven有生命周期

    当任务失败时,用户应获得错误消息弹出窗口等

    用户?弹出窗口?Maven并不是真正针对最终用户的,Maven是一个开发工具,在出现错误时,您会得到控制台中的一条消息

    通过maven自动更新存储库

    你是说CVS更新吗?这并非不可能,但通常不是Maven的工作(这更像是一个持续集成引擎任务)

    Maven调用ant构建*.war

    这是可以使用的,但这不是精神,可能违反一些maven规则(比如每个项目一个工件)。而且,Maven不会神奇地意识到Ant构建的东西。你为什么不跟Ant呆在一起

    将新创建的生成文件(*.war)复制到带有日期/时间的本地文件夹

    可能。但默认情况下情况并非如此

    自动从生成计算机上载/部署到服务器

    Maven有一些插件(例如)可以帮助你实现这一点,但你必须告诉他

    测试特定URL/产品以测试站点流

    Maven自己不会这么做的。但它可以运行(集成)测试

    正在发送有关部署状态的邮件

    这不是maven的责任(更多的是持续集成引擎任务)


    我的总体感觉是,你对蚂蚁的思考太多了,也许对Maven的期望太高了。Maven是不同的,它并不像你描述的那样工作,它不像Ant那样工作。我的建议是要么完全迁移到Maven并采用它的哲学,要么坚持你当前的Ant解决方案(并且可能考虑使用IVY来利用诸如依赖性管理、工件部署)之类的东西。 另见

    我想这不是预期的答案,但我认为您走的不是正确的道路,我不认为以您喜欢的方式使用Maven有什么意义。从您的描述中,我的印象是,您并没有真正采用Maven,而是试图将现有的东西插入其中,相信我,这不是开始使用Maven的最简单方法:

    • 这将增加一层额外的复杂性
    • 这需要对maven的工作方式有更深的理解,而不是“仅仅”采用它
    • 你将与该工具抗争(该工具很有可能获胜)
    • 这将带来更多的麻烦而不是好处
    我真的不知道从哪里开始,所以我将首先尝试快速介绍您的观点:

    我有一些BAT文件必须通过maven执行

    这是可能的,但这并不是真正的Maven方式(取决于逻辑,您应该将其移动到Maven或将其保留在Maven之外),我认为这不会非常健壮(尽管可能是错误的)。最重要的是,这已经需要一些关于(在哪里挂机)和插件配置的知识。从我所看到的(我不是故意粗鲁),你没有

    在执行默认命令时,我需要回显“StartedFirstTask”之类的状态

    这不是Maven的工作方式。Maven不像Ant,Maven ha
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.example.maven</groupId>
      <artifactId>test</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>war</packaging>
      <name>test</name>
      <url>http://maven.apache.org</url>
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1.1</version>
            <executions>
              <execution>
                <goals>
                  <goal>exec</goal>
                </goals>
              </execution>
            </executions>
            <!--echo>Starting CVS Update</echo-->
            <configuration>
              <tasks>
                <exec>
                  <directory>D:\</directory>
                  <executable>"D:\test.bat"</executable>
                  <!--failonerror="true" -->
                  <!-- optional -->
                  <!--workingDirectory>"cd C:\repo\projects\mcsandbox"</workingDirectory-->   
                </exec>
              </tasks>
            </configuration>
          </plugin>
        </plugins>
      </build> 
    </project>