我正在尝试将jQAssistant集成到我现有的Maven构建中。我有一个POM层次结构,但基本上顶层POM定义了构建的功能。这就是我的<代码>
因此,我希望在构建期间扫描所有类,并将结果聚合到正在运行的服务器中,以便在构建所有Maven模块之后拥有一个完全填充的Neo4J数据库。数据库应该包含我的整个代码库。
分析和检查将是另一个步骤,我不想在构建Maven模块时直接这样做。
我看到的示例都是构建一个本地数据库,然后对照它检查类。据我所知,我必须将服务器作为守护程序运行,然后将Maven插件配置为使用“bolt”URI来填充它-是这样吗?
此外,由于我不想减慢“正常”构建的速度,我添加了一个Maven概要文件来激活jQAssistant扫描。然而,这只适用于我的顶级POM,而不适用于任何其他Maven项目/模块。概要文件的继承是Maven的一个正常和预期的特性——那么我做错了什么呢?
这是我的父母POM。为了查看配置文件是否处于活动状态,我还添加了PMD:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<packaging>pom</packaging>
<groupId>foo</groupId>
<artifactId>parent</artifactId>
<version>1.50.0-SNAPSHOT</version>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.buschmais.jqassistant</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<version>1.5.0</version>
<configuration>
<useExecutionRootAsProjectRoot>true</useExecutionRootAsProjectRoot>
</configuration>
</plugin>
</pluginManagement>
</build>
<profile>
<id>architecture</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>pmd</goal>
<goal>cpd</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.buschmais.jqassistant</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<executions>
<execution>
<id>scan</id>
<goals>
<goal>scan</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</project>
当我在具有该父POM的Maven项目上运行mvn清洁包-P架构
时,我看到以下输出,显示配置文件处于活动状态:
09:30:12.316 [INFO]
09:30:12.316 [INFO] --- maven-pmd-plugin:3.5:pmd (default) @ util-type ---
09:30:15.073 [INFO]
09:30:15.073 [INFO] --- maven-pmd-plugin:3.5:cpd (default) @ util-type ---
09:30:15.976 [INFO]
然而,jqassistant maven插件还不存在。
现在,如果我将其添加到我的正常<代码>
<build>
<plugins>
<plugin>
<groupId>com.buschmais.jqassistant</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<executions>
<execution>
<id>scan</id>
<goals>
<goal>scan</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后,我看到了我的父POM的mvn clean package的以下输出:
10:38:14.252 [INFO] --- jqassistant-maven-plugin:1.5.0:scan (scan) @ parent ---
10:38:15.684 [INFO] Loaded jQAssistant plugins [CDI, Common, Core Analysis, Core Report, EJB3, GraphML, JAX-RS, JPA 2, JSON, JUnit, Java, Java 8, Java EE 6, Maven 3, OSGi, RDBMS, Spring, TestNG, Tycho, XML, YAML].
10:38:15.952 [INFO] Connecting to store at 'file:/C:/jp/maven-parents/parent/target/jqassistant/store/'
10:38:20.058 [INFO] Initializing embedded Neo4j server 3.x
10:38:20.078 [INFO] Resetting store.
10:38:21.515 [INFO] Reset finished (removed 8453 nodes, 29427 relations).
10:38:22.372 [INFO] Entering C:/jp/maven-parents/parent/target/failsafe-reports
10:38:22.378 [INFO] Leaving C:/jp/maven-parents/parent/target/failsafe-reports (1 entries, 4 ms)
但是,在我的Maven项目中,我没有看到任何jQAssistant输出。
启动mvn help: vality-pom-Parchitree
为父项目和Maven模块提供了相同的输出:
<plugin>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.5</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>pmd</goal>
<goal>cpd</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
<configuration>
...
</configuration>
</plugin>
<plugin>
<groupId>com.buschmais.jqassistant</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<version>1.5.0</version>
<executions>
<execution>
<id>scan</id>
<goals>
<goal>scan</goal>
</goals>
<configuration>
<useExecutionRootAsProjectRoot>true</useExecutionRootAsProjectRoot>
</configuration>
</execution>
</executions>
<configuration>
<useExecutionRootAsProjectRoot>true</useExecutionRootAsProjectRoot>
</configuration>
</plugin>
几年后,我们来到了这里:-)
回到我的错误上来!
这里的问题是Maven阶段。默认情况下,jQAssistant插件Mojo扫描具有Maven阶段的集成后测试。
但是,我们从来没有做mvn清洁安装
在我的公司,我们只做mvn清洁包
和安装使用Jenkins,Nexus等。
所以,没有强制插件进入包
阶段是我的错。
这就是它的工作原理:
<profile>
<id>jqassistant</id>
<build>
<plugins>
<plugin>
<groupId>com.buschmais.jqassistant</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<executions>
<execution>
<id>scan-software</id>
<phase>package</phase>
<goals>
<goal>scan</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
在我的项目中,我有一个具有以下插件管理部分的父POM:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.buschmais.jqassistant</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<version>${jqassistant.version}</version>
<configuration>
<useExecutionRootAsProjectRoot>true</useExecutionRootAsProjectRoot>
</configuration>
<executions>
<execution>
<id>scan</id>
<goals>
<goal>scan</goal>
</goals>
</execution>
<execution>
<id>analyze</id>
<goals>
<goal>analyze</goal>
</goals>
<configuration>
<failOnSeverity>MAJOR</failOnSeverity>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
我还定义了以下配置文件,我用它来运行jQAss抗:
<profile>
<id>verify-architecture</id>
<build>
<plugins>
<plugin>
<groupId>com.buschmais.jqassistant</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
使用mvn-P verify archicture clean install,我可以扫描和分析我的项目。
假设我们在Eclipse中有一个Maven项目。pom。xml有两个概要文件。 问题是:如何在Eclipse中运行maven以执行每个配置文件的每个目标? 我试图: 在属性/maven中设置活动maven配置文件- 我希望maven将为这两个概要文件运行,执行pom中的所有任务。xml 谢谢
我可以通过运行Grails命令“war”来构建一个war文件,并且war文件运行完美。 说到maven,它根本不起作用!我通过运行“clean package”构建项目,并跳过了所有测试(不知道这是否会影响战争) war文件是在目标目录中生成的,但我注意到war文件的大小与grails命令生成的文件不同。另外,当我将maven生成的war文件部署到tomcat服务器上时,它无法运行。 另一个问题是
问题内容: 这是我的POM中的示例配置文件: 然后,我的资源文件夹中就有一个属性文件,如下所示: 最后,我在POM中打开过滤功能: 这实际上是一个简化的示例,但是您明白了。基本上我跑步的时候 mvn install -P QA Maven将过滤我的app.properties文件,将所有占位符替换为配置文件中保存的值,然后部署填充的属性文件。 所有这些的问题在于,我喜欢利用Eclipse中的服务器
我正在尝试使用 maven build 作为运行配置在 eclipse 中运行cucumber测试。当我运行配置时,构建成功,但浏览器不调用。因此,测试未运行。测试被跳过,给出一个信息“没有什么可编译的 - 所有类都是最新的”。我能够通过将功能文件作为cucumber功能运行来成功运行相同的测试。 请告诉我为什么要跳过测试。也让我知道运行maven构建cucumber测试的步骤。下面是我使用的po
如何将具有approle[in vault]的微服务连接到具有vault后端的Spring Cloud Config Server。 我可以看到使用根令牌的示例,如curl-x GET http://localhost:8888/my-service/default-h“x-config-token:s.tmqara2lasdnhjzqqzy7y8px”。但是我找不到任何使用approle连接sp
我试图为我的生产环境创建一个构建版本。在我的SpringWeb应用程序中,我有4个.yml文件 应用程序.yml application-development.yml application-staging.yml application-production.yml 在应用中。yml文件,我指定 我使用maven创建一个构建的命令是 在我的目标文件夹中,我可以看到所有属性和我的生产设置没有出现