小编Pin*_*ino的帖子

解释maven 2依赖树中的"省略冲突"

这是由Maven 2.2.1生成的依赖树 mvn -o dependency:tree -Dverbose -Dincludes=log4j

[INFO] [dependency:tree {execution: default-cli}]
[INFO] com.openboxes.renderingservice:common:jar:1.0
[INFO] +- org.springframework:spring:jar:2.0.4:compile
[INFO] |  \- commons-logging:commons-logging:jar:1.1:compile
[INFO] |     \- log4j:log4j:jar:1.2.12:compile
[INFO] \- it.mycompany.portal:server:jar:1.5-SNAPSHOT:compile
[INFO]    \- org.slf4j:slf4j-log4j12:jar:1.1.0:compile
[INFO]       \- (log4j:log4j:jar:1.2.13:compile - omitted for conflict with 1.2.12)
Run Code Online (Sandbox Code Playgroud)

正如您所见,log4j v1.2.12优于v1.2.13.

我知道"Maven通过最近赢的策略解决版本冲突"(参见http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html)但这两个依赖关系似乎是在相同的距离(两个嵌套级别,我错了?)所以我希望使用最新的.

有人可以解释这个结果吗?

是的,log4j没有在这个POM中显式声明(我认为它应该是),但我想更好地理解Maven的工作方式.

谢谢

dependency-management maven

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

m2eclipse说"缺少神器"但我可以用cmdline构建!

我正在尝试首次使用这个Sonatype Eclipse插件来处理我可以使用maven从命令行构建的现有(巨大)软件.

我已经将插件配置为使用我的maven 2.2.1安装而不是内置的Maven 3.

在Eclipse中,我有25个项目(通过root pom.xml加载),其中4个有编译错误; maven控制台包含很多像这样的行:

缺少工件commons-logging:commons-logging:jar:1.0.4:compile

我在我的存储库中有所有jar,并正确定义了M2_REPO类路径变量.为什么插件没有看到所有的罐子?

这些项目的.classpath文件只引用"MAVEN2_CLASSPATH_CONTAINER",没有jar列表.Eclipse中的pom.xml在丢失的jar的第一行显示错误,但我可以从命令行构建!

任何的想法?我需要帮助!如果我不解决这个问题,我会尝试迁移到NetBeans.

谢谢.

dependencies m2eclipse maven

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

使用gmailr发送HTML消息

我希望能够使用gmailR包通过内联电子邮件(而不是附件)发送R生成的HTML报告.我甚至无法使用发送基本的HTML电子邮件gmailr.我尝试了下面的失败并需要一些帮助:

library(gmailr)
gmail_auth("oauth.token.json", scope = "compose")

test_email <- mime() %>%
 to("you@gmail.com") %>%
 from("me@gmail.com") %>%
 subject("This is a subject") 
test_email$body <- "I wish <b>this</b> was bold"
send_message(test_email)
Run Code Online (Sandbox Code Playgroud) 结果:消息成功发送,但正文是纯文本 - 而不是HTML


尝试2

test_email <- mime() %>%
 to("you@gmail.com") %>%
 from("me@gmail.com") %>%
 subject("This is a subject") %>%
 html_body("I wish <b>this</b> was bold")
test_email$body
Run Code Online (Sandbox Code Playgroud) 结果:test_email $ body为NULL


尝试3

test_email <- mime() %>%
 to("you@gmail.com") %>%
 from("me@gmail.com") %>%
  subject("This is a subject") 
test_email$body <- html_body("I wish <b>this</b> was bold")
Run Code Online (Sandbox Code Playgroud) 结果:mime $ parts中的错误:$ operator对原子向量无效


尝试4

test_email …
Run Code Online (Sandbox Code Playgroud)

r gmail-api gmailr

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

为什么HK2重新包装一切?

对于我工作的一些项目,我最近从Jersey 1换到了Jersey 2.我遇到过泽西2号的最大烦恼是它使用的是HK2,由于某种原因重新打包标准的Maven文物.为了避免潜在的讨厌调试问题,我尽量避免从不同的项目中引入相同的类.我使用Extra Enforcer规则依赖项中的Ban Duplicate Classes Maven强制执行规则来破坏构建(如果发生这种情况).

根据前面提到的Ban Duplicate Classes enforcer规则,切换到Jersey 2会在其工件和我之前使用的标准工件之间引入以下冲突:

hk2 Artifact                                                Conflicting Artifact
org.glassfish.hk2.external:aopalliance-repackaged:2.3.0-b07 aopalliance:aopalliance:1.0
org.glassfish.hk2.external:bean-validator:2.3.0-b07         com.fasterxml:classmate:0.8.0 (used by org.hibernate:hibernate-validator:5.0.0.Final)
org.glassfish.hk2.external:bean-validator:2.3.0-b07         javax.validation:validation-api:1.1.0.Final
org.glassfish.hk2.external:bean-validator:2.3.0-b07         org.hibernate:hibernate-validator:5.0.0.Final
org.glassfish.hk2.external:bean-validator:2.3.0-b07         org.jboss.logging:jboss-logging:3.1.0.GA
org.glassfish.hk2.external:javax.inject:2.3.0-b07           javax.inject:javax.inject:1
Run Code Online (Sandbox Code Playgroud)

我的解决方案是将标准工件从可传递的依赖项中排除,因此只使用hk2工件.我认为这更安全:我不知道hk2工件还有什么东西可能会丢失,如果我要排除它们(例如,bean-validator工件似乎重新打包至少四个工件).这样做的缺点是,首先,我对我的依赖项进行了大量的排除,这些依赖项带来了其他无关紧要的API依赖项,例如validation-api.其次,我的工件现在正在导出HK2重新打包的依赖项,而不是我希望导出的实际API类.

最终,我的问题是:

  1. 为什么HK2重新包装一切?这有什么好的理由吗?
  2. 什么是HK2实际重新包装,我可以只使用标准的API版本吗?我怎么知道这个?我已经克隆了HK2项目,我在找出从哪里开始找到它时遇到了一些麻烦.

除了这些问题的实际答案之外,联系HK2背后的开发人员会有什么好的论坛,所以我可以直接提出这个问题?我查看了网站,虽然我找到了一些邮件列表,但我没有看到任何明显适合提问的问题.

java dependency-management maven jersey-2.0 hk2

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

启动Jboss Wildfly 9.02服务器时出现并发超时异常

我是jboss服务器的新手.当我尝试在服务器上部署.war文件时,以下异常在控制台上打印:

6:38:04,388 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0348: Timeout after [300] seconds waiting for service container stability. Operation will roll back. Step that first updated the service container was 'add' at address '[
    ("core-service" => "management"),
    ("management-interface" => "http-interface")
]'
16:38:05,642 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) WFLYJCA0019: Stopped Driver service with driver-name = Aerobay.war_com.mysql.jdbc.Driver_5_1
16:38:09,548 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0190: Step handler org.jboss.as.server.DeployerChainAddHandler$FinalRuntimeStepHandler@5f88823f for operation {"operation" => "add-deployer-chains","address" => []} at address [] failed handling operation rollback -- …
Run Code Online (Sandbox Code Playgroud)

jboss wildfly

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

如何使用pdo fetch计算while循环中的行数

我正在使用mysqli_fetch_array并且计数是正确的,直到我更改为fetch(),现在只返回总行数而不是返回每行的每个数字.

所以对于第一行,我想回显"1",依此类推.

新注意:while语句中的所有其他内容都返回正确的值,但计数器返回总行数,而我想要按照从sql语句中选择的顺序排序.

按照要求.这是我的联系.

我不知道我是否想要检查"$ e-> getMessage();" 因为我在所有查询中使用此连接,所以在每个查询上.

try {
    $dbh = new PDO('mysql:host=localhost;dbname=my_db;charset=utf8', 'usr', 'pwd',
                    array(PDO::ATTR_EMULATE_PREPARES => false, 
                          PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
                  );
} catch (PDOException $e){
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

这很有效

$query = mysqli_query($con, 'SELECT * FROM music');

$count = 0;
while($row = mysqli_fetch_array($query)){
    $count++; 
    echo $count;
}
Run Code Online (Sandbox Code Playgroud)

新的不起作用.

$query = $dbh->query('SELECT * FROM music');

$count = 0;
while($row = $query->fetch()){
    $count++; 
    echo $count;
}
Run Code Online (Sandbox Code Playgroud)

php mysql sql counter pdo

7
推荐指数
1
解决办法
2365
查看次数

MongoDB:$ divide和$ multiply错误

我正在创建一个MongoDB聚合管道,我在这个阶段陷入困境:

        $group: {
            _id: {checkType: "$_id.checkType", resultCode: "$_id.resultCode"},
            count: { $sum: "$count" },
            ctv: { $sum: "$ctv" },
            perc:{$multiply:[{$divide:["$ctv","$count"]},100]},
            weight: { $divide: [ "$ctv", "$count"] },
            details: { $push: "$$ROOT" }
        }
Run Code Online (Sandbox Code Playgroud)

它给出错误"$ multiply accumulator是一元运算符".类似地,如果我用$ multiply删除该行,则在后续行中得到"$ divide accumulator是一元运算符".我在网上找不到这个错误的描述.我的sintax有什么问题?

mongodb aggregation-framework

7
推荐指数
1
解决办法
7251
查看次数

JBoss 7:JNDI查找

很长一段时间后,我在JBoss 7.1.1下远程访问了无状态EJB.使用Properties对象:

Properties jndiProps = new Properties();
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, 
    "org.jboss.naming.remote.client.InitialContextFactory");
jndiProps.put(Context.PROVIDER_URL,"remote://localhost:4447");
jndiProps.put(Context.SECURITY_PRINCIPAL, "remote");
jndiProps.put(Context.SECURITY_CREDENTIALS, "remotepwd");
jndiProps.put("jboss.naming.client.ejb.context", true);
Context ctx = new InitialContext(jndiProps);

String lookupString = "//HelloWorld/HelloWorldBean!org.acme.test.HelloWorld";
HelloWorld hw = (HelloWorld) ctx.lookup(lookupString);
System.out.println("Response: "+ hw.sayHello("Hi there"));
Run Code Online (Sandbox Code Playgroud)

所以这很好但现在我想把JNDI的东西放到jndi.properties文件中但是失败了,这就是文件的样子:

java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
java.naming.factory.url.pkgs=org.jboss.ejb.client.naming
java.naming.provider.url=remote://localhost:4447
java.naming.security.principal=remote
java.naming.security.credentials=remotepwd
Run Code Online (Sandbox Code Playgroud)

例外:

Exception in thread "main" java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:HelloWorld,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@108c175
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at $Proxy0.sayHello(Unknown Source)
at de.brockhaus.test.client.TestClient.main(TestClient.java:35)
Run Code Online (Sandbox Code Playgroud)

我已经经历过几个doco但是失败了,那么它怎么样呢?

jboss jndi

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

@Accessors( Fluent = true) 不适用于 Jakson

在带有 Lombok 的 Spring boot 应用程序中,我有 pojo 类 AccountDTO

@Data
@Builder
@Accessors(fluent = true)
public class AccountDTO  implements Serializable {
    private String identification;
}
Run Code Online (Sandbox Code Playgroud)

我的项目编译得很好。但是,它在执行过程中抛出异常

com.fasterxml.jackson.databind.exc.InvalidDefinitionException:找不到类 AccountDTO 的序列化程序,也没有发现用于创建 BeanSerializer 的属性

如果我删除注释@Accessors(fluent = true),那么它将正常工作,没有任何问题。

我怎样才能一起制作Lombok @Accessors(fluent = true)Jackson工作?

java serialization jackson lombok

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

SourceTree不显示远程标签

我通过 Bitbucket 网站创建了一个标签 --> 错误地将其放置在 Develop 分支而不是 master 分支的提交上 在此输入图像描述

我想删除标签。通过 SourceTree 使用 Develop 分支结帐连接到我的存储库。单击左侧面板上的“标签”或单击菜单中的“标签”按钮时,标签不显示,并且标签模式窗口打开,没有要删除的标签

在此输入图像描述

请指教(我的电脑上没有安装git,无法通过命令行访问)

tags git atlassian-sourcetree

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