我有一个多模块maven java项目,我想在其中执行exec插件,以便在创建JAR后执行自定义命令。
我在父POM上调用maven包汇编:汇编exec:exec来创建项目输出。
我在父POM中使用了以下内容:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<executable>myExecutable.exe</executable>
<workingDirectory>${basedir}</workingDirectory>
<arguments>....</arguments>
</configuration>
</plugin>
执行此操作时,我的可执行文件得到了正确执行,但也对每个子模块执行。
为了尝试修复它,我将插件设置为不继承子模块:
<inherited>false</inherited>
但是现在exec插件失败,目标org.codehaus.mojo: exec-maven-plugin: 1.2.1: exec的参数“可执行文件”丢失或无效。
我尝试将插件设置为在“executions”元素下运行,并将其分配给maven生命周期阶段。这导致可执行文件成功运行,但我无法这样做,因为我需要在执行这个exec插件之前执行其他插件(汇编插件)。
如何在包阶段完成后运行此(exec)插件一次,而另一个插件(组件)也已完成?
换句话说,我希望为所有子模块执行“package”,然后从父模块只执行一次exec插件。
我将感谢任何帮助。
这将跳过先前配置的执行的继承:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
...
</build>
当您在父POM级别运行命令时,您告诉Maven为每个模块调用生命周期的该部分。
如果您只想为子模块调用exec: exec,您应该仅为子模块声明该插件(因为它对继承父模块的其他模块没有任何意义),并通过--project
或-pl
调用Maven>参数:
mvn-pl子包汇编:汇编exec:exec
当从父项目执行此命令时,仅对子项目执行包assembly:assembly exec:exec。
但是,如果您真正想要完成的是,您可以在一个命令中打包
所有模块,并且希望在打包
阶段为该子模块执行assembly:assembly
和exec:exec
目标,那么您需要将这些插件绑定到该阶段。例如:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<executable>myExecutable.exe</executable>
<workingDirectory>${basedir}</workingDirectory>
<arguments>....</arguments>
</configuration>
<executions>
<!-- run the exec goal of this plugin every time this module is packaged -->
<execution>
<phase>package</phase>
<goals><goal>exec</goal></goals>
</execution>
</executions>
</plugin>
问题内容: 我有一个抽象基类,用作我的单元测试(TestNG 5.10)的基础。在该类中,我将初始化测试的整个环境,设置数据库映射等。此抽象类具有一个带有注释的方法,该方法可以进行初始化。 接下来,我用具有方法和方法的特定类扩展该类。这些方法对环境进行类特定的初始化(例如,将一些记录放入数据库中)。 如何执行带注释的方法的特定顺序?我需要先执行抽象基类中的那些,然后再执行扩展类中的那些。 例: 预
我在Java实践继承,面临以下问题: 父类的代码: 子类代码: 两者是分开的。java文件。当我尝试执行父类文件时,它可以工作,但由于某些原因,我甚至无法运行子类。这里有以下信息: 该文件于2月8日发布。java不是可执行的。请选择要运行的主类 我该如何解决这个问题?
FAQs in section [24]: [24.1] 如何表示“私有继承”? [24.2] 私有继承和组合(composition)有什么类似? [24.3] 我应该选谁:组合还是私有继承? [24.4] 从私有继承类到父类需要指针类型转换吗? [24.5] 保护继承和私有继承的关系是什么? [24.6] 私有继承和保护继承的访问规则是什么? 24.1 如何表示“私有继承”? 用 : priv
本文向大家介绍C/C++ 公有继承、保护继承和私有继承的对比详解,包括了C/C++ 公有继承、保护继承和私有继承的对比详解的使用技巧和注意事项,需要的朋友参考一下 C/C++ 公有继承、保护继承和私有继承的区别 在c++的继承控制中,有三种不同的控制权限,分别是public、protected和private。定义派生类时,若不显示加上这三个关键字,就会使用默认的方式,用struct定义的类
问题内容: 我正在尝试使用像这样的静态块: 我有一个叫做 和派生类: 我的功能是这样的: 这按我的预期打印输出。有人可以解释这种行为吗?另外,如果我希望派生类为静态变量设置值,该如何实现? 问题答案: 我认为。您不调用任何属性(属于,不属于)。而且Java没有从运行静态块。如果向其中添加一些静态字段并对其进行访问,则Java将执行所有静态块。 根据Java规范,当类初始化时(并执行了静态块): 1
本文向大家介绍详解C++编程中的私有继承和公有继承,包括了详解C++编程中的私有继承和公有继承的使用技巧和注意事项,需要的朋友参考一下 C++类的私有继承 在声明一个派生类时将基类的继承方式指定为private的,称为私有继承,用私有继承方式建立的派生类称为私有派生类(private derived class ), 其基类称为私有基类(private base class )。 私有基类的公用成