小编Mar*_*rer的帖子

Jenkins:如何从git存储库构建多个顶级项目?

我有一个Git存储库,其中包含一堆顶级maven项目(每个项目都位于他们自己的子目录中,并带有一个pom.xml).这里的顶级意味着这些项目位于存储库根目录下的子目录中.所有这些项目都应保留在同一个Git存储库中.

repo
+--- projectA
    +--- pom.xml

+--- projectB
    +--- pom.xml
Run Code Online (Sandbox Code Playgroud)

他们可以/应该由独立的詹金斯工作建立.所以我们有一个projectA的工作和一个projectB的工作.

以前使用Subversion,我能够设置一个Jenkins作业(对于每个项目),它只检查项目源并从pom.xml运行Maven构建.

使用Git模型(可能与所有DVCS相同),这种变化,我不确定什么是最佳实践.我看到了一些选项,我不喜欢这些选项:

  1. 每个Jenkins作业都配置为克隆/拉出完整的Git存储库,并引用Maven构建的/pom.xml.因此,该作业具有所有代码,但只构建了一部分.
  2. Git提供Submodules(http://book.git-scm.com/5_submodules.html),它似乎有点难以处理(并且可以轻松破解)
  3. 创建一个maven父(包含所有项目的聚合器)项目,触发每个项目构建(具有单个jenkins作业).这个pom.xml包含projectA和projectB的元素.

你有没有看到更有用的方法(非常典型的设置).你有什么经历?任何最佳做法?

git maven jenkins

21
推荐指数
1
解决办法
1万
查看次数

是否可以配置Dozer,以便默认情况下通过setter-/getter方法直接访问字段

我必须映射一个复杂的Java类结构,它通常不会通过set-/get-methods暴露它们的字段(这是给定的,不能更改).因此,映射只能在直接字段访问上执行.推土机允许个别字段可访问,但我没有找到设置使这成为一般行为.因此,我不必为了使其可访问而明确地映射每个字段!

这个选项存在吗? - 在课堂上? - 在全球范围内?

java mapping dozer

11
推荐指数
1
解决办法
4465
查看次数

没有单位测试成功报告给声纳

一个gradle构建正在创建一个jacoco报告,由声纳跑步者接收.将声纳结果推送到声纳服务器后,即使所有测试都成功运行,也会显示单元测试覆盖率,但单元测试成功为0.

查看声纳跑步者日志,我看到以下项目报告源和类位置:

15:52:36.087 INFO  - Source dirs: /poc-sonar/src/main/java
15:52:36.087 INFO  - Test dirs: /poc-sonar/src/test/java, /Volumes/Disk/Development/poc-sonar/src/test/groovy
15:52:36.088 INFO  - Binary dirs: /poc-sonar/build/classes/main
Run Code Online (Sandbox Code Playgroud)

这提出了第一个问题:Sonar是否必须查看已编译的测试类以进行分析?

进一步下来日志:

15:52:37.435 INFO  - Sensor JaCoCoSensor...
15:52:37.445 INFO  - Analysing /poc-sonar/build/jacoco/test.exec
15:52:37.546 INFO  - No information about coverage per test.
15:52:37.548 INFO  - Sensor JaCoCoSensor done: 113 ms
15:52:38.105 INFO  - Execute decorators...
15:52:38.580 INFO  - Store results in database
Run Code Online (Sandbox Code Playgroud)

Jacoco已经拿起了这个test.exec文件,但报道了"No information about coverage per test"

该日志声明是什么意思?声纳服务器实际上暴露了正确的覆盖范围!它是Sonar报告缺失测试成功的指标吗?获得该装置缺少什么

Unit Tests Coverage
50,0%
50,0% line coverage

Unit …
Run Code Online (Sandbox Code Playgroud)

unit-testing gradle sonarqube

9
推荐指数
1
解决办法
1万
查看次数

使用H2嵌入式数据库和spring-jdbc处理"数据库已关闭"

事件虽然内置的H2 EmbeddedDatabaseConfigurer提供了带有DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false选项集的JDBC连接,但是引起了令人讨厌的异常AbstractEmbeddedDatabaseConfigurer.shutdown().

关于stackoverflow的这个主题已经有很多讨论.我试图对选项进行一些调整,并得出结论,自定义设置(DB_CLOSE_DELAY=20;DB_CLOSE_ON_EXIT=false)提供了一个自定义DataSourceFactory减少出现次数但不完全消除它.

/**
 * This factory tries to solve the problem that Spring tries to close a data source that has already been closed by the H2 engine/H2 driver.
 */
public class H2DataSourceFactory implements DataSourceFactory {
    private final SimpleDriverDataSource dataSource = new SimpleDriverDataSource();

    @Override
    public ConnectionProperties getConnectionProperties() {
        return new ConnectionProperties() {
            @Override
            public void setDriverClass(Class<? extends Driver> driverClass) {
                dataSource.setDriverClass(driverClass);
            }

            @Override
            public void setUrl(String url) { …
Run Code Online (Sandbox Code Playgroud)

h2 spring-jdbc

6
推荐指数
1
解决办法
6155
查看次数

总是触发带有“when:manual”的gitlab规则

尝试对自动为标签运行并使用规则为特定分支手动运行的作业进行建模。然而,该作业总是在没有用户干预的情况下触发

ismanual:
  stage: prepare
  rules:
    # Always deliver a tagged build
    - if: '$CI_COMMIT_TAG != ""'
      when: on_success
    # Manual deliver a feature branch build
    - if: '$CI_COMMIT_BRANCH =~ /feature\/.*/'
      when: manual
  script:
    - echo "hello"
Run Code Online (Sandbox Code Playgroud)

我正在使用 gitlab.com!

gitlab-ci

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

dozer ×1

git ×1

gitlab-ci ×1

gradle ×1

h2 ×1

java ×1

jenkins ×1

mapping ×1

maven ×1

sonarqube ×1

spring-jdbc ×1

unit-testing ×1