小编lil*_*s27的帖子

Bower和NPM如何结合在一起?

因此,为了解释我的问题,我来自Java后端开发人员的角度,我们使用Maven来构建.我一直致力于测试我们最近开发的服务器端Node项目,但现在我正在继续在我们的前端JavaScript客户端上设置测试.我不是很精通前端开发,这是我第一次涉足这方面.

所有这一切,我想我将使用以下技术堆栈进行前端测试:Eclipse IDE,Maven构建过程,Mocha测试框架,Chai断言框架,Nock HTTP模拟框架,Sinon模拟/间谍/ stubbing框架,Rewire依赖注入框架.一切都应该没问题,因为那是我们用于Node项目的堆栈,我希望尽可能保持前端设置的相似性.

所以,这是我的知识崩溃的地方.我似乎无法理解我们的Node项目和我们的前端JavaScript项目之间的依赖关系管理的差异.我不明白为什么我不会继续使用集成到我们的Maven构建中的NPM来处理依赖项管理和安装.

我看到很多人都在鼓吹Bower,但在查看了它的页面和文档之后,我仍然没有看到NPM不会填充的利基.在浏览器依赖管理的情况下,我看到很多人坚决拒绝NPM; 主要原因是NPM是为服务器端Node项目而设计的,而不是为前端空间设计的.但谁在乎?无论其初始设计的意图如何,如果它做了我需要做的事情,那么它的缺点是什么?

请接近这个"问题",好像我是一个完整的新手.我已经意识到,当我完成这个过程和研究时,我对前端方面的知识非常缺乏.话虽如此,请在答案中尽可能具体和彻底.我很乐意根据需要分享项目配置等,以帮助描绘我所在空间的图片.感谢任何反馈!

javascript build dependency-management npm bower

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

Post-Commit Hook触发自动Jenkins Build

我知道有很多类似的帖子,但我没有找到解决方案,其他帖子中提出的建议和解决方案与我所看到的并不相符.

这个场景非常简单:我在Eclipse中有一个项目,当我从该项目签到更改到我们的Subversion服务器(即VisualSVN Server 2.5.3)时,我想要我们的Jenkins持续集成服务器(即Jenkins 1.546) )获取此更改并启动新版本.我不想从詹金斯民意调查.

我一直主要遵循本文中的步骤.这是我的post-commit钩子脚本:

repos   = WScript.Arguments.Item(0)
rev     = WScript.Arguments.Item(1)
svnlook = WScript.Arguments.Item(2)
jenkins = WScript.Arguments.Item(3)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("C:\Program Files (x86)\VisualSVN Server\log.txt")

objFile.Writeline "repos=" & repos
objFile.Writeline "rev=" & rev
objFile.Writeline "svnlook=" & svnlook
objFile.Writeline "jenkins=" & jenkins

Set shell = WScript.CreateObject("WScript.Shell")

Set uuidExec = shell.Exec(svnlook & " uuid " & repos)
Do Until uuidExec.StdOut.AtEndOfStream
  uuid = uuidExec.StdOut.ReadLine()
Loop

objFile.Writeline "uuid=" & uuid

Set changedExec = shell.Exec(svnlook & " changed …
Run Code Online (Sandbox Code Playgroud)

svn continuous-integration hudson visualsvn-server jenkins

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

Hibernate:没有实体Inner Class的默认构造函数

我意识到有很多类似的问题,但没有一个能帮我解决这个问题.

我正在使用一个名为Tynamo的CRUD框架,后者又依赖于Apache Tapestry和Hibernate.这一切都很好,除了当我尝试在具有复合/复合主键的表上使用CRUD时.

我决定不去这@EmbeddedId条路,因为它似乎根本不适用于框架.话虽这么说,我一直在使用这种@IdClass方法,主要是工作; 我想我是一两行远离成功的代码.

问题在于,当它开始使用反射来构建对象时,它会爆炸并说org.hibernate.InstantiationException: No default constructor for entity: ...,即使确实有一个公共的空构造函数用于该内部类.

在回答时,请避免使用代码片段,并使用完整的课程等,以便访问此主题的其他人可以更全面地了解正在发生的事情.

你可以在下面看到我的课程:

package com.company.crud.entities;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;

import com.company.crud.entities.TransferExtension.TransferExtensionPK;

@Entity(name = "Transfer_Extensions")
@IdClass(TransferExtensionPK.class)
public class TransferExtension implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    // @NotNull(message = "Please supply a Script Code")
    // @Length(min = 3, max = 4)
    @Column(name = "Division", nullable = false)
    private String scriptCode;

    @Id
    // @NotNull(message = …
Run Code Online (Sandbox Code Playgroud)

java hibernate tapestry composite-key tynamo

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

使用 exec-maven-plugin 在 Windows 上执行 shell 脚本

我有一个使用 exec-maven-plugin 执行带有三个参数的 shell 脚本的 pom。运行时mvn clean install -X -e,它在该步骤失败并出现错误,

[DEBUG] Toolchains are ignored, 'executable' parameter is set to C:\dev\intellij\projects\project-in-question\driver/src/main/scripts/dependencies.sh
[DEBUG] Executing command line: [C:\dev\intellij\projects\project-in-question\driver\src\main\scripts\dependencies.sh, C:\dev\intellij\projects\project-in-question\driver\target/project-in-question.dependencies, C:\dev\intellij\projects\project-in-question\driver\target, third-parameter]  

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.2:exec (dependencies) on project project-in-question: Command execution failed.: Cannot run program "C:\dev\intellij\projects\project-in-question\driver\src\main\scripts\dependencies.sh" (in directory "C:\dev\intellij\projects\project-in-question\driver"): CreateProcess error=193, %1 is not a valid Win32 application -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.2:exec (dependencies) on project project-in-question: Command execution failed.
Run Code Online (Sandbox Code Playgroud)

pom.xml 的相关部分:

        ...
        <plugin>
            <groupId>org.codehaus.mojo</groupId> …
Run Code Online (Sandbox Code Playgroud)

java windows shell maven exec-maven-plugin

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

如何将Active Directory objectGuid转换为可读字符串?

我正在使用Novell.Directory.Ldap用C#编写的Xamarin移动应用程序.

使用Novell,我可以使用域名,用户名和密码对用户进行身份验证

LdapConnection.bind(username, password);
Run Code Online (Sandbox Code Playgroud)

然后,我使用sAMAccountName相当于提供的用户名的搜索执行搜索.

在所有这一切成功运行之后,我需要获取用户,objectGuid以便我可以查询外部数据库,这些数据库使用guid作为密钥.问题是,当我从后面拿回guid时LdapSearchResults,它以某种方式编码.我无法弄清楚如何获得这个guid的可读字符串表示.

有没有人有这方面的更多信息?我会想象guid是以某种方式编码的,但它是如何编码的,我不知道.我试过了

System.Convert.FromBase64String 
Run Code Online (Sandbox Code Playgroud)

那并没有帮助.我很感谢帮助人员,如果我能发布任何有用的信息,请告诉我.

private void Login()
{
    if (LOG.isInfoEnabled())
    {
        LOG.info("Attempting LDAP logon . . .");

        if (LOG.isDebugEnabled())
        {
            LOG.debug("Host: " + this.ldapHost);
            LOG.debug("Port: " + this.ldapPort);
            LOG.debug("SearchBase: " + this.ldapSearchBase);
        }
    }

    LdapConnection conn = new LdapConnection();

    try
    {
        conn.Connect(this.ldapHost, this.ldapPort);

        if (LOG.isDebugEnabled())
        {
            LOG.debug("connected?: " + conn.Connected.ToString());
        }
    }
    catch (Exception e)
    {
        LOG.error("An exception occurred while attempting to connect to AD server!", e); …
Run Code Online (Sandbox Code Playgroud)

mobile encoding ldap active-directory xamarin

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

作为 Maven 构建过程的一部分,将 Jar 依赖安装到本地存储库

我有一个第三方 jar,它是我的项目的依赖项。由于业务限制,我无法访问企业或公司存储库,这绝对是我对此问题的偏好。但不管怎样,这个第三方 jar 是不公开的,所以它被包含在src\main\resources.

这是一个 Maven 项目,因此我将此第三方 jar 列为编译时依赖项,并在我的 pom 中包含一个构建插件,该插件将作为构建过程的一部分将第三方 jar 安装到我的本地存储库;我告诉 Mavenvalidate在构建生命周期的阶段执行这个目标,据我所知,这是在任何其他 Maven 阶段之前。

但是,当我运行 aclean install并清除我的本地存储库时,由于第三方 jar 无法在本地或 Maven 中央存储库中解析,因此构建失败。据我所知,我已经正确设置了 pom,我应该看到 Maven 在开始依赖解析之前尝试在本地安装第三方 jar。

问题是,如果在本地安装 jar 之前列出了依赖项,则构建将由于无法解决该依赖项而失败。如果我删除第三方 jar 声明并运行构建,发生依赖项解析之后(这是它在清理之后所做的第一件事),但在任何其他阶段之前,它将在本地安装 jar 并且一切正常。但据我所知,它应该validate在收集和解析依赖项之前运行该阶段,因此 jar应该在 Maven 解析之前在本地安装。有什么想法或想法吗?

我的pom:

<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.company</groupId>
    <artifactId>project</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>Web Services</name>
    <description>This project will handle communication.</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <!-- This plugin installs the Evip …
Run Code Online (Sandbox Code Playgroud)

java eclipse dependencies maven

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

Ant javac任务出错:[javac]警告:[options] bootstrap类路径未与-source 1.6一起设置

我正在尝试运行axis2-ant-plugin-1.6.0.jar\org\apache\axis2\tool\ant\AntCodegenTask用于执行WSDL2Java操作的ant任务.

在ant脚本的顶部,我定义java6.boot.classpath:

    <property name="java6.boot.classpath" value="${env.JAVA6_BOOT_CLASSES}"/>
Run Code Online (Sandbox Code Playgroud)

我将JAVA6_BOOT_CLASSES环境变量设置为C:\dev\java\64-bit\jdk-1.6.0_45\bin.

相关的蚂蚁目标如下:

<!-- dist.jar target -->
<target name="dist.jar" depends="generate"
    description="Creates the web services client jar file">
    <echo>Compiling web services client code</echo>

    <javac srcdir="${project.javapath}" destdir="${build}" 
           source="1.6" target="1.6" 
           debug="true" debuglevel="lines,vars,source" 
           excludes="com/company/junit/**"
           bootclasspath="${java6.boot.classpath}"
           includeantruntime="false">

        <classpath refid="compile.classpath" />
    </javac>

    <echo>Creating ${jarname}.jar</echo>
    <jar destfile="${dist}/${jarname}.jar" basedir="${build}" />
    <echo>${jarname}.jar created</echo>
</target>
Run Code Online (Sandbox Code Playgroud)

然而,试图运行它,我收到了名义错误:

 [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6  
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我觉得我已经为Java 1.6正确设置了启动类路径,但是ant似乎并不同意.

java ant axis javac

6
推荐指数
2
解决办法
6025
查看次数

JVM崩溃时GC日志被覆盖

我正在为G1GC调整我们的产品,作为测试的一部分,我在Spark Workers上遇到了常规的段错误,这当然会导致JVM崩溃.发生这种情况时,Spark Worker/Executor JVM会自动重新启动,然后会覆盖为以前的Executor JVM编写的GC日志.

说实话,我不太确定Executor JVM如何重启自己的机制,但是我启动了Spark驱动程序服务init.d,然后调用bash脚本.我在该脚本中使用了一个时间戳,该时间戳附加到GC日志文件名:

today=$(date +%Y%m%dT%H%M%S%3N)

SPARK_HEAP_DUMP="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${SPARK_LOG_HOME}/heapdump_$$_${today}.hprof"
SPARK_GC_LOGS="-Xloggc:${SPARK_LOG_HOME}/gc_${today}.log -XX:LogFile=${SPARK_LOG_HOME}/safepoint_${today}.log"

GC_OPTS="-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:+PrintFlagsFinal -XX:+PrintJNIGCStalls -XX:+PrintTLAB -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=15 -XX:GCLogFileSize=48M -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy -XX:+PrintHeapAtGC -XX:+PrintGCCause -XX:+PrintReferenceGC -XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1"
Run Code Online (Sandbox Code Playgroud)

认为问题是这个脚本将这些选项发送到Spark驱动程序,然后Spark驱动程序将它们传递给Spark Executors(通过-Dspark.executor.extraJavaOptions参数),它们都是独立的服务器,当Executor JVM崩溃时,它只是使用命令最初被发送以开始备份,这意味着GC日志文件名的时间戳部分是静态的:

SPARK_STANDALONE_OPTS=`property ${SPARK_APP_CONFIG}/spark.properties "spark-standalone.extra.args"`
SPARK_STANDALONE_OPTS="$SPARK_STANDALONE_OPTS $GC_OPTS $SPARK_GC_LOGS $SPARK_HEAP_DUMP"

exec java ${SPARK_APP_HEAP_DUMP} ${GC_OPTS} ${SPARK_APP_GC_LOGS} \
    ${DRIVER_JAVA_OPTIONS} \
    -Dspark.executor.memory=${EXECUTOR_MEMORY} \
    -Dspark.executor.extraJavaOptions="${SPARK_STANDALONE_OPTS}" \
    -classpath ${CLASSPATH} \
    com.company.spark.Main >> ${SPARK_APP_LOGDIR}/${SPARK_APP_LOGFILE} 2>&1 &
Run Code Online (Sandbox Code Playgroud)

这使我很难调试段错误的原因,因为我正在失去导致JVM崩溃的Workers的活动和状态.有关如何处理这种情况并将GC日志保留在Workers上的任何想法,即使在JVM崩溃/段错误之后?

java garbage-collection g1gc apache-spark

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

使用 Java 11 HttpClient 读取分块数据

我正在尝试使用 Java 11 的 java.net.http.HttpClient 从 Http Response 读取分块数据,但我一次只能获取一行。我需要一次获取一整块。

这是我的代码:

    final InputStream eventStream;

    try {
        HttpResponse<InputStream> httpResponse = httpClient.send(HttpRequest
                .newBuilder(
                        new URI(this.config.getEnvironmentAccess().getUrl() + ":<port>/status/?pretty=true"))
                .GET().build(), BodyHandlers.ofInputStream());

        LOGGER.info("event stream HttpResponse received");
        LOGGER.info("statusCode: {}", httpResponse.statusCode());
        LOGGER.info("headers: {}", httpResponse.headers());
        LOGGER.info("version: {}", httpResponse.version());
        LOGGER.info("request: {}", httpResponse.request());

        eventStream = httpResponse.body();
    } catch (IOException | InterruptedException | URISyntaxException e) {
        throw new RuntimeException("Unable to get status event stream", e);
    }

    BufferedReader br = new BufferedReader(new InputStreamReader(eventStream));
    String line = "";

    try {
        while ((line = br.readLine()) …
Run Code Online (Sandbox Code Playgroud)

java chunked java-http-client java-11

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

JMeter的nanoThreadSleep属性 - 我该如何使用它?

我正在设置一个负载测试解决方案,正如我一直在阅读JMeter的文档,我看到你可以为测试计划设置许多属性.我已经测试已经运行得很好并产生结果,图表等,但是当我试图更深入地了解JMeter和结果的准确性等时,我遇到了下面的模糊.

JMeter的文档中,我读到以下内容:

# Whether to use System.nanoTime() - otherwise only use System.currentTimeMillis()
sampleresult.useNanoTime=true

# Use a background thread to calculate the nanoTime offset
# Set this to <= 0 to disable the background thread
sampleresult.nanoThreadSleep=5000
Run Code Online (Sandbox Code Playgroud)

现在,我明白这nanotime将基于一个固定的,但任意的原始时间,而currenttimeinmillis基于系统时间(即挂钟).而且我知道这nanotime会更精确,这就是我对使用它感兴趣的原因:我正在进行负载测试,并且需要响应时间测量尽可能准确和精确.

但我遇到的问题是了解如何使用nanoThreadSleep.纳米级偏移究竟是什么?为什么我想要或不想要后台线程来计算纳米级偏移?如果我启用JMeter使用纳米时间运行会发生什么,但是不要nanoThreadSleep明确使用该设置?

我已经搜索了StackOverflow和Google的某些解释,但除了JMeter的文档在我粘贴的那个小小的模糊中找不到它之外,我找不到其他的.其他人可以帮助我理解这个以及如何正确有效地使用它吗?

performance benchmarking jmeter nanotime jmeter-plugins

5
推荐指数
1
解决办法
652
查看次数