0

我有一个项目,为此我创建了一个 pom.xml。但是,我没有使用 Maven 作为我的构建系统,我使用的是其他东西(例如 ANT)。但我希望 pom.xml 存在以供其他工具使用,例如 IDE。我如何确保,如果有人下载我的项目并尝试使用 Maven 构建它,他们会清楚地表明他们做错了事?

4

1 回答 1

0

将以下内容添加到 pom.xml:

   <properties>
      <maven.build.not.supported>
         Do not use Maven to build this module. Please see README.html for
         instructions on how to build it.
      </maven.build.not.supported>
   </properties>
   <build>
      <plugins>
         <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
               <execution>
                  <id>fail-clean-lifecycle</id>
                  <phase>pre-clean</phase>
                  <configuration>
                     <tasks>
                        <fail message="${maven.build.not.supported}" />
                     </tasks>
                  </configuration>
                  <goals>
                     <goal>run</goal>
                  </goals>
               </execution>
               <execution>
                  <id>fail-default-lifecycle</id>
                  <phase>validate</phase>
                  <configuration>
                     <tasks>
                        <fail message="${maven.build.not.supported}" />
                     </tasks>
                  </configuration>
                  <goals>
                     <goal>run</goal>
                  </goals>
               </execution>
               <execution>
                  <id>fail-site-lifecycle</id>
                  <phase>pre-site</phase>
                  <configuration>
                     <tasks>
                        <fail message="${maven.build.not.supported}" />
                     </tasks>
                  </configuration>
                  <goals>
                     <goal>run</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
      </plugins>
   </build>

由于我们显然无法将插件执行绑定到多个阶段,因此我们需要重复执行块 3 次,每个内置生命周期(干净、默认和站点)一次。为避免重复失败消息,我们将其存储在 Maven 属性中,并在每次执行中重用该属性。在每次执行中,我们绑定到生命周期的第一阶段以立即使其失败。

于 2013-05-02T02:02:32.273 回答