月食-“;“作为Java应用程序运行”;当maven参与进来时

月食-“;“作为Java应用程序运行”;当maven参与进来时,java,eclipse,maven,m2e,Java,Eclipse,Maven,M2e,我有一个maven项目。默认情况下,active我有生产配置文件。似乎我找不到在Eclipse中使用登台配置文件作为应用程序运行它的方法,除非我将activeByDefault放在登台配置文件中。 有没有办法配置它,这样我就不必每次都编辑pom了?在Eclipse中从Maven项目运行Java应用程序时,唯一受影响的是如何构造应用程序类路径。通常在Maven中有几个不同的类路径作用域:编译、编译测试(这个测试实际上用于在EclipseJDT中构造类路径)和运行时。运行时类路径作用域用于为应用程序

我有一个maven项目。默认情况下,
active
我有生产配置文件。似乎我找不到在Eclipse中使用登台配置文件作为应用程序运行它的方法,除非我将
activeByDefault
放在登台配置文件中。
有没有办法配置它,这样我就不必每次都编辑pom了?

在Eclipse中从Maven项目运行Java应用程序时,唯一受影响的是如何构造应用程序类路径。通常在Maven中有几个不同的类路径作用域:编译、编译测试(这个测试实际上用于在EclipseJDT中构造类路径)和运行时。运行时类路径作用域用于为应用程序启动组装类路径。m2e实际上是在使用Maven代码来解决它

因此,您要么在pom.xml中更改概要文件激活设置,要么在Eclipse项目属性/Maven/activemaven概要文件中指定活动概要文件


若您希望运行时概要文件不同于Eclipse中的构建时概要文件,那个么现在是不可能的。您必须提交m2e的增强请求,以允许在计算启动类路径时指定活动配置文件。

好问题。当您在Maven项目上说“作为Java应用程序运行”时,我不知道Eclipse到底在执行什么。大概它只是在后台启动它编译的版本,这将基于您的默认配置文件?如果您显式构建一个不同的配置文件(通过Run as…Maven build…)然后执行该应用程序,会发生什么情况?为了扩展您的第一个建议,我想OP可以定义在存在系统属性时激活登台配置文件。然后将该属性包含在“作为Java应用程序运行”参数中?@DuncanJones。我想为登台环境创建一个类似“正在运行”的配置文件。如果“环境”是不同的用户或计算机,则可以在该计算机/用户本地的settings.xml中激活该配置文件。如果环境只是您临时修补的东西,我想它应该是pom.xml中的一个属性。将该属性添加到执行概要文件将不起作用。这些属性被传递到Java应用程序,此时类路径已经解析。我已经更新了我的答案。我通常喜欢这样。首先,我尝试将所有取决于环境的信息放在一个文件中,我们称之为config。然后,我在项目中为我需要的每个环境创建了一个文件夹,即:env dev/、env prod/,等等。在每个文件夹中,我放置了一份config,经过适当编辑以反映环境约束。当我从Eclipse中运行应用程序时,我手动将env dev/添加到项目类路径中,而当我通过maven构建要发布的应用程序时,我通过-P显式指定一个概要文件,以包含我感兴趣的env文件夹中的配置。我知道。。。不那么专业。