当前位置: 首页 > 知识库问答 >
问题:

需要创建Maven插件或“某种包装器”,或者我应该使用父pom

蓬思博
2023-03-14

我们正在几个(10多个)项目中使用frontend-maven-plugin。这些项目是结合我们自己的CMS来构建的。这些项目在pom中使用特定的“父级”,例如:

<parent>
    <groupId>nl.companyname</groupId>
    <artifactId>companyname-corporate-pom</artifactId>
    <version>2.0.13</version>
</parent>
<project.frontendmavenplugin.version>1.3</project.frontendmavenplugin.version>
    <project.frontendmavenplugin.workingDirectory>./</project.frontendmavenplugin.workingDirectory>

    <project.node.downloadRoot>http://nodejs.COMPANYURL.nl/dist/</project.node.downloadRoot>
    <project.node.version>v6.9.1</project.node.version>

    <project.yarn.version>v0.17.9</project.yarn.version>
    <project.yarn.downloadRoot>http://yarnpkg.COMPANYURL.nl/</project.yarn.downloadRoot>
    <project.npm.registryUrl>http://nexus.COMPANYURL.nl/content/groups/npm-all/</project.npm.registryUrl>
<build>
    <pluginManagement>
        <!-- Generic configuration for plugins used by (almost) all projects. -->
        <plugins>
<plugin>
                <groupId>com.github.eirslett</groupId>
                <artifactId>frontend-maven-plugin</artifactId>
                <version>${project.frontendmavenplugin.version}</version>
                <executions>

                    <execution>
                        <id>install node and yarn</id>
                        <goals>
                            <goal>install-node-and-yarn</goal>
                        </goals>
                        <phase>generate-resources</phase>
                        <configuration>
                            <workingDirectory>${project.frontendmavenplugin.workingDirectory}</workingDirectory>
                            <nodeVersion>${project.node.version}</nodeVersion>
                            <nodeDownloadRoot>${project.node.downloadRoot}</nodeDownloadRoot>
                            <yarnVersion>${project.yarn.version}</yarnVersion>
                            <yarnDownloadRoot>${project.yarn.downloadRoot}</yarnDownloadRoot>
                        </configuration>
                    </execution> 

etc.

但是:我们现在也在创建越来越多的新应用程序(基于Spring Boot),它们独立于我们的CMS并且我们不能使用这个“父POM”,因为Spring Boot有它自己的(spring-boot-starter-parent)并且我们的“公司POM”也包含非常特定的插件/配置,这些插件/配置仅适用于我们的CMS(我们不包括在这些Spring Boot项目中)。

所以我需要的是一些更“独立”的frontend-maven-plugin配置(也许将来会有更多“平台”独立的配置/插件)。据我所知,一个以上的父母是不可能的,那么还有其他的选择吗?我想创建一个新的'companyname-frontend-maven-plugin',它同时包含PluginManagement,作为前端Maven插件的所有(可扩展的)配置。但是我不知道这是否可行,而且在git/Jenkins中创建和维护这是一个很大的工作,还有其他的选择吗?

谢谢大家抽出时间!

共有1个答案

钱和安
2023-03-14

也许你可以用个人资料。您可以创建一个“公司”pom,它继承自spring-boot-starter-parent,并且包含一个maven配置文件,具有您的CMS所需的所有属性和插件。因此,当您在CMS上工作时,您将启用“CMS-Profile”。

亲切的问候。

 类似资料:
  • 问题内容: 我的日常工作是使用AngularJS进行客户开发。我们正在评估是否要使用TypeScript。我对Typescript进行了一些研究,几乎我需要的每个JavaScript包都必须具有定义类型文件。我发现这不是很方便,特别是如果我想尝试新的东西并且他们没有它的定义时。真令人沮丧。(即使当前的jQuery定义也给我一些问题,如果我想使用Typescript1.5 beta)。我开始研究ES

  • 问题内容: 据我了解,这不是通过使用想法插件(即通过调用)在Intellij中打开使用Maven构建的项目的最佳方法。 但是直接打开pom文件(Intellij具有Maven的默认插件);同样的东西,对于日食。 您能否提供一些关于为什么这是一种更好方法的论点? 问题答案: 这同样适用于IntelliJ和Maven: 更改文件未反映在您的IDE中,因此每次都必须重新生成项目(可能丢失某些配置(?))

  • 新手问题。我最近遇到了一个包含大量文件和外部库的项目。其中一些库包含Makefiles和CmakeList。txt。我正在建设一个类似的项目,涉及外部图书馆。有必要同时学习CMake和make吗。还是说CMake就足够了?

  • 一旦你将packaging设置为pom,你需要groupID、artifactId和version标签吗?如果需要,它们有什么用途?有没有应该使用的标记(毕竟groupID显然是针对java的,所以如果有其他语言或工件类型特定的标记应该使用,我也不会感到惊讶)。样品: 简单的父pom: 简单的孩子pom: 然后子孩子是各种项目的许多类型,java,C,角,python,更多的poms。

  • 问题内容: 我的C程序使用定期调用的回调函数。我希望能够处理Java或C#程序中的回调函数。我应该如何编写.i文件来实现这一目标? C回调看起来像这样: 问题答案: 如果您有机会通过回调传递一些数据,则可以执行此操作,但是您需要编写一些JNI胶。我整理了一个完整的示例,说明如何将C样式的回调映射到Java接口。 您需要做的第一件事是确定在Java方面合适的接口。我假设在C中我们有如下回调: 我决定

  • 在. java 我得到了 1.8.0_45 但是当我把它打包成一个jar包并在另一个项目中使用时,它告诉我 为什么? 在cmd中 C:\用户\想法 Java版本"1.8.0_45" Java(TM)SE运行时环境(build 1.8.0_45-b15) JavaHotSpot(TM)64位服务器VM(构建25.45-b02,混合模式)