小编mko*_*bit的帖子

用gradle运行单一集成测试

我正在尝试使用gradle的-Dtest.single标志运行单个集成测试.我添加了另一个源集,src/integrationTest并将测试放在那里.我有一个集成测试任务

task integrationTests(type: Test) {
    dependsOn 'assemble', 'integrationTestClasses'    
    testClassesDir = sourceSets.integrationTest.output.classesDir
    classpath = sourceSets.integrationTest.runtimeClasspath
}
Run Code Online (Sandbox Code Playgroud)

运行正常,但如果我尝试运行单个测试,它告诉我它找不到匹配的测试.我不希望每次编写新的测试时都要运行每个集成测试.有没有办法做到这一点?

testing integration gradle

17
推荐指数
2
解决办法
2万
查看次数

当前安装的提供程序不支持TLS_RSA_WITH_AES_256_CBC_SHA

我们安装了Cassandra 2.0并将其配置为SSL,我们在启动时运行此问题.我们正在使用Open JDK

java-1.7.0-openjdk-1.7.0.55-2.4.7.1.el6_5.x86_64
Run Code Online (Sandbox Code Playgroud)

异常消息:

Caused by: java.lang.IllegalArgumentException: Cannot support 
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA with currently installed providers
Run Code Online (Sandbox Code Playgroud)

我查看了以下链接 - 但这与Java 6/7相关.

http://www.pathin.org/tutorials/java-cassandra-cannot-support-tls_rsa_with_aes_256_cbc_sha-with-currently-installed-providers/

有任何想法吗 ?谢谢一堆

openjdk cassandra-2.0

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

JUnit5特定于标记的gradle任务

我使用以下注释来标记我的集成测试:

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Tag("integration-test")
public @interface IntegrationTest {
}
Run Code Online (Sandbox Code Playgroud)

这是我用来build.gradlegradle build以下方面排除这些测试的过滤器:

junitPlatform {
    filters {
        tags {
            exclude 'integration-test'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

现在我想提供一个专门运行我的集成测试的Gradle任务 - 推荐的方法是什么?

gradle junit5

17
推荐指数
3
解决办法
4623
查看次数

正确使用stash\unstash到另一个目录

在我的一个阶段中,我需要在构建完成后复制两个文件夹的内容并复制到另一个目录.

我实际上是将自由式作业转换为管道,并且一直在使用工件部署器插件.阅读,看起来像stash和unstash命令应该有助于我想要实现的目标.

有人可以验证这是否是下面的正确方法?

stage('Build') {
      steps {
        sh '''
          gulp set-staging-node-env
          gulp prepare-staging-files
          gulp webpack
        '''
        stash includes: '/dist/**/*', name: 'builtSources'
        stash includes: '/config/**/*', name: 'appConfig'
        dir('/some-dir') {
          unstash 'builtSources'
          unstash 'appConfig'
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

如果我在一个阶段更改dir,这是否意味着此后所有其他阶段将尝试从该目录执行命令,或者他们是否回到使用工作区默认位置?

谢谢

编辑

我已经意识到我真正想要做的是将构建的源复制到不同的节点(运行不同的操作系统).所以在我的代码片段中,我已经共享,在我切换目录的地方,该目录实际上是在我设置的不同机器(节点)上.

我需要dir()node('my-node-name')块包裹块吗?我很难找到例子.

谢谢

jenkins jenkins-plugins jenkins-pipeline

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

如何在Maven中正确包含Java源代码?

我正在研究一个非常简单的Java博客引擎,以便学习多种技术.

Tech:Spring IoC,Hibernate,jUnit,GWT和Maven.

我创建了两个Maven项目:一个核心项目和一个GWT项目(其核心项目有一个参考)

可以通过https://github.com/LaurentT/BlogEngineCore访问代码

我的目标如下:我想要包含Java源代码和XML,因为我的GWT项目需要Java源代码才能将其编译成JavaScript.

我试图在<build>元素中使用以下代码:

     <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.java</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.*xml</include>
                <include>**/*.*properties</include>
            </includes>
        </resource>
    </resources>
Run Code Online (Sandbox Code Playgroud)

我的jUnit测试用于在添加之前传递和完成,但现在他们甚至没有完成他们正在挂...

我不知道发生了什么,所以我想知道是否还有其他方法可以包含Java源代码,或者我是否只是做错了.

任何线索?

gwt maven

16
推荐指数
2
解决办法
2万
查看次数

为什么Pipeline @Library()语法中有时会出现一个尾随下划线

为什么@Library()调用_至少在某些情况下需要尾随(下划线)字符?例如@Library('foobar-library@foobranch') _

这对我来说似乎完全是多余的,但也许有一个很好的解释?

syntax groovy jenkins jenkins-pipeline

16
推荐指数
1
解决办法
1683
查看次数

使用嵌套扩展对象编写gradle插件

我正在使用与Asgard(来自netflix)集成的gradle插件(我不知道groovy,刚开始使用gradle).我希望我的扩展对象看起来像这样:

asgard {
  url = "http://asgard"
  regions {
    "us-east-1" {
      autoScaling {
        {
          devPhase = "test"
          min = 3
          max = 6
          availabilityZones = ["us-east-1a", "us-east-1b", "us-east-1c"]
          ami = "Base AMI 2013-07-11"
          instanceType = "m3.xlarge"
          securityGroups = ["base", "test-application"]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

或者接近那个.我已经能够通过使autoScaling成为一个List来接近这个,但是当我尝试从该类获取属性时,它似乎返回一个动态属性,而不是值.以下是入门插件:

import org.gradle.internal.reflect.Instantiator

class AsgardPlugin implements Plugin<Project> {
  void apply(Project project) {
    project.extensions.create("asgard", AsgardPluginExtension, project)
    project.asgard.extensions.regions = project.container(AsgardRegion) {String name ->
      AsgardRegion region = project.gradle.services.get(Instantiator).newInstance(AsgardRegion, name)
      assert region instanceof ExtensionAware

      region.extensions.add("autoScaling", project.container(AsgardAutoScaling))

      return region
    }


    project.task('displayConfigs') …
Run Code Online (Sandbox Code Playgroud)

plugins gradle

15
推荐指数
1
解决办法
6558
查看次数

如何将Jetty和Jersey嵌入到我的Java应用程序中

所以我试图将jetty嵌入到我的Web应用程序中,这样如果我将它打包成jar,就可以运行jar文件而不必担心配置服务器.但是,我在设置主类时遇到了一些问题,因此jetty可以访问我的资源类.我看过教程,但他们没有给我我正在寻找的东西.这就是我到目前为止所拥有的.

package pojo;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

public class Main {

    public static void main(String[] args) throws Exception {
        Server server = new Server(8080);
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
        context.setContextPath("/");
        ServletHolder h = new ServletHolder(new DefaultServlet());
        h.setInitParameter("javax.ws.rs.Application","resources.DBCollection");
        context.addServlet(h, "/*");
        server.setHandler(context);
        server.start();
        server.join();
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将它映射到这个类:

package resources;


import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.UriInfo;

import pojo.Party;

@Path("/parties")
public class DBCollection {

    @Context
    UriInfo …
Run Code Online (Sandbox Code Playgroud)

java jetty embedded-jetty maven

15
推荐指数
2
解决办法
3万
查看次数

使用@GrabConfig时,找不到合适的ClassLoader

我正在尝试编写一个使用groovy.sql.SQL的全局函数脚本.

添加注释@GrabConfig(systemClassLoader=true)时,在Jenkinsfile中使用全局函数时会出现异常.

这是一个例外:

hudson.remoting.ProxyException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
General error during conversion: No suitable ClassLoader found for grab
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

@GrabResolver(name='nexus',    root='http://internal.repo.com')
@GrabConfig(systemClassLoader=true)
@Grab('com.microsoft.sqlserver:sqljdbc4:4.0')
import groovy.sql.Sql
import com.microsoft.sqlserver.jdbc.SQLServerDriver

def call(name) {
  echo "Hello world, ${name}"

  Sql.newInstance("jdbc:sqlserver://ipaddress/dbname", "username","password", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
  //  sql.execute "select count(*) from TableName"
}
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline

15
推荐指数
1
解决办法
3830
查看次数

来自Nashorn的IllegalArgumentException异常 - 这是Java 8中的错误吗?

我正在使用Nashorn javascript引擎来评估在java应用程序中编写的所有服务器端javascript代码.为了提高性能,我在启动时使用spring初始化JsEngine并评估和缓存所有核心工具,如Mustache和一些常见的JS工具.然后每次屏幕渲染时,这个预先评估的JsEngine将用于评估特定于页面的JavaScript代码.它在某些时候工作正常,意味着它按预期呈现页面,但在我持续点击相同的URL时开始抛出异常

我无法找到问题的根本原因.

@Component
public class JsEngine {

    private ScriptEngine scriptEngine;

    @PostConstruct
    public void init() throws ScriptException, IOException{
        scriptEngine = new ScriptEngineManager().getEngineByName("nashorn");
        this.cacheAllCoreEngines();
        for(String key: defaultEngineSource.keySet()){
            scriptEngine.eval(defaultEngineSource.get(key));
        }
    }

    private void cacheAllCoreEngines()throws IOException{
       //read all core files such as mustache, etc. 
       defaultEngineSource.put("mustache",  FileUtil.readFileFromDisk("<actual path..>/mustache.js"));
    }

    public Object eval(String source) throws  ScriptException{
            .... code to handle exceptions 
            return scriptEngine.eval (source);
    }

}
Run Code Online (Sandbox Code Playgroud)

JsEngine如下所示,

public class AppRendererImpl implements  AppRenderer {

    @Autowired
    JsEngine jsEngine;

    public String render(){
     ....
     .... //Read source from disk …
Run Code Online (Sandbox Code Playgroud)

java spring java-8 nashorn

14
推荐指数
1
解决办法
1081
查看次数