我在接受采访时被问到这个问题,我不相信我能给出最好的答案.我提到你可以进行并行搜索,并且通过某些我无法记住的方法处理空值.现在我意识到我在想Optionals.我在这里错过了什么?他们声称它的代码更好或更简洁,但我不确定我是否同意.
考虑到它的回答是多么简洁,看起来这毕竟不是一个问题.
如果他们在面试中提出这个问题,而且显然是这样,除了让更难找到答案之外,还有什么目的可以打破它?我的意思是,你在找什么?我可以打破这个问题并解决所有子问题但是然后创建一个包含所有子项的链接的父问题......虽然看起来很傻.虽然我们在这,但请举一个不太广泛的问题的例子.我知道没有办法只问这个问题的一部分,仍然得到一个有意义的答案.我可以用不同的方式问同一个问题.例如,我可以问"流服务的目的是什么?" 或"我什么时候使用流而不是for循环?" 或"为什么要打扰流而不是循环?" 这些都是完全相同的问题.
......还是被认为过于宽泛,因为有人给出了一个非常长的多点答案?坦率地说,知情人士几乎可以解决任何问题.例如,如果您恰好是JVM的作者之一,那么当我们大多数人不能这样做时,您可能会整天谈论for循环.
"请编辑问题,将其限制在具有足够详细信息的特定问题上,以确定适当的答案.避免同时询问多个不同的问题.请参阅"如何询问"页面以获取有关此问题的帮助.
如下所述,已经给出了足够的答案,证明存在一个并且很容易提供.
这不是重复,因为那些其他解决方案不起作用.
我有一个子项目:
:公地:小部件
gradle.build(子项目)类似于:
configurations {providedCompile}
dependencies {
compile project(":commons:other-widget")
...other dependencies...
}
Run Code Online (Sandbox Code Playgroud)
如果显示依赖项:
+--- project :commons:some-other-project
+--- project :commons:exclude-me-project (*)
\--- org.apache.cxf:cxf-rt-frontend-jaxrs: -> 3.0.3 (*)
Run Code Online (Sandbox Code Playgroud)
什么行不通:
任何通常的语法.我试过了我能想到的每一个变化.甚至去寻找API但无法找到我需要的东西.
在这个项目的依赖项部分:...
compile project(":commons:some-other-project") {
exclude (":commons:exclude-me-project")
}
Run Code Online (Sandbox Code Playgroud)
结果:
Could not find method exclude() for arguments [:commons:some-other-project] on project
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
compile ( project (':commons:some-other-project') ) {
transitive = false
}
Run Code Online (Sandbox Code Playgroud)
结果:它不删除":commons:some-other-project"的依赖项,而是删除":commons:some-other-project".
我有一个庞大而复杂的项目要转换.我前面有很多这样的工作.将项目作为依赖项,如何从中排除项目?
我正在研究这个问题,这样我才能在面试中做出更好的回应.我一直在寻找清晰简洁的答案.
到目前为止,如果我错了或缺乏细节,请务必纠正我:
这看起来像是一个准确而完整的答案吗?我应该添加或更正任何内容吗?线程问题/差异怎么样?
我们的许多代码都是遗留的,但我们正在转向"大数据"后端,我正在尝试传播新的API调用,鼓励使用最新的Spring库等.我们的一个问题是应用层ID代.由于我不理解的原因,更高的权限需要顺序BigInteger.我会让它们随机重新生成并重新尝试失败的插入但我完成了否决.
磕磕绊绊地说,我处于一个需要增加并在线程中获得BigInteger并以安全和高效的方式执行的位置.我之前从未使用过AtomicReference,但它看起来非常接近完美的应用程序.现在我们有一个同步代码块,这会严重损害我们的性能.
这是正确的方法吗?语法示例?
我应该提一下这个模块的工作方式,它使用存储过程命中数据库以获取要使用的一系列值.一次只有几万个,所以它只发生在20分钟一次.这使得各种服务器不会相互踩踏,但它也增加了必须将BigInteger设置为任意后续值的皱纹.当然,这也需要线程安全.
PS我仍然认为我的随机生成想法比处理所有这些线程的东西更好.一个BigInteger是一个非常大的数字,两次产生相同的几率的几率必须接近零.
因为我是这样的新手,问题就是背景.他们的例子与我的版本不符.我已经在本地安装了jar,所以它绝对应该可用.
我的项目看起来像:
allprojects {
apply plugin: 'maven'
apply plugin: "io.spring.dependency-management"
group = 'com.wnp'
version = '6.5.0-SNAPSHOT'
}
subprojects {
apply plugin: 'java'
sourceCompatibility = System.getProperty("java.version")
targetCompatibility = System.getProperty("java.version")
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
dependencyManagement {
imports {
mavenBom 'org.springframework.ws:spring-ws:2.1.4.RELEASE'
mavenBom 'org.jboss.as:jboss-as-jms-client-bom:7.5.0.Final-redhat-21'
}
dependencies {
dependency "antlr:antlr:2.7.7"
}
}
apply plugin: "io.spring.dependency-management"
Run Code Online (Sandbox Code Playgroud)
他们的项目如下:
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE"
}
}
apply plugin: "io.spring.dependency-management"
Run Code Online (Sandbox Code Playgroud)
我从系统中获得的是:
引起:org.gradle.api.plugins.UnknownPluginException:找不到ID为'io.spring.dependency-management'的插件.
线索?"buildscript"代表什么?这是一项任务吗?我已经尝试过将"依赖"部分放在各处."apply plugin:"行也是如此.我的dependencyManagement部分是否在正确的位置?我一直看到的一件事是"依赖关系无法应用于关闭",就错误消息而言,这是非常无益的.
基本上我所拥有的是涉及第三方编译器的几个步骤.
如果我这样称呼:
project.configurations.compile.add(...)
Run Code Online (Sandbox Code Playgroud)
我明白了:
UnsupportedOperationException: Configuration ':rules:wnp-productmessagerules:compile'
does not allow modification.
Run Code Online (Sandbox Code Playgroud)
编辑:我刚学会了我可以使用
artifacts {
someConfig someTask
}
Run Code Online (Sandbox Code Playgroud)
...将任务的输出添加到配置中.现在我只需要选择正确的任务,然后找出如何将配置与我的自定义任务相关联.假设它的配置会影响类路径.
我是一个OSGI新手.
我可以使用任何关于IntelliJ IDEA/OSGI/Maven/Sling的指导.
所以当我加载它时,实际的Felix插件会死掉.显然它没有被维护,并且不再与最新版本兼容,我的意思是IntelliJ IDEA 13.
所以我已经将框架配置为felix-framework-4.2.1,这似乎工作正常.我最关心的是,如果我将OSGI方面应用于一个包,设置似乎表明它将改变包.既然我们在Maven中设置了这个,我认为我们不想要这个.facet的来源似乎是Osmorc插件.当我之前使用它时,有人抱怨maven中的某些软件包没有启用OSGI,并且IDE希望指向一个特殊的Spring存储库,用于启用OSGI的jar依赖项.
由于我们在Maven中这样做,我是否应该打扰Osmorc?有没有更好的方法来管理IntelliJ IDEA中的OSGI?知道哪些软件包启用OSGI很方便,但错误呢?真?具体来说,我指的是"包依赖关系不会导出包",显示在导入和注释上.
所以我有一个像顶部一样旋转的XJC javaExec,但IntelliJ不识别生成的输出,尽管标记generated-src/java为这样.我是否需要调整插件或其他内容?
注意:插件本身从根目录加载到子项目中build.gradle.
XJC项目:
description = "Generates sources and compiles them into a Jar for $project"
configurations { xjc }
dependencies {
xjc 'org.glassfish.jaxb:jaxb-xjc:2.2.11'
xjc 'org.glassfish.jaxb:jaxb-runtime:2.2.11'
}
task xjc (type:JavaExec) {
doFirst{
File generatedSrcDir = file("$buildDir/generated-src/java")
if (!generatedSrcDir.exists()) {
generatedSrcDir.mkdirs()
}
}
main = "com.sun.tools.xjc.XJCFacade"
classpath configurations.xjc
def argsList = [
"-mark-generated",
"-no-header",
"-verbose", // or -quiet or nothing for default.
"-target", "2.1",
"-encoding", "UTF-8",
"-d", "$buildDir/generated-src/java",
"-catalog","$projectDir/src/main/resources/commons-gradle.cat",
file("$projectDir/src/main/resources/v1/") ]
args argsList
inputs.files files(file("$projectDir/src/main/resources/v1/"))
outputs.files files(file("$buildDir/generated-src/java"),file("$buildDir/classes")) …Run Code Online (Sandbox Code Playgroud) 对我来说,编译器会采用这样的方式似乎是合理的:
log.info("A really long logger message that is kind of a pain in the tucous " +
"and violates formatting standards by making the line to long");
Run Code Online (Sandbox Code Playgroud)
并将两个字符串编译成一个.我很确定这是真的,但如果有人提出来的话,我想把我的鸭子连成两排.
所以我有一个普通的shell脚本,我想执行2个git命令,但没有凭据.如何将凭据存入我的环境?我是否必须设置GIT_ASKPASS?我不是管理员所以"安装插件"不是一个很好的选择.
环境已有以下可用:
BUILD_URL
UPDATE_VERSION
HOSTNAME
PASS <--- This one looks like a possible but still no user id.
POM_GROUPID
HUDSON_SERVER_COOKIE
BUILD_TAG
POM_DISPLAYNAME
GIT_PREVIOUS_COMMIT
WORKSPACE
JOB_URL
RUN_CHANGES_DISPLAY_URL
POM_ARTIFACTID
MAVEN_OPTS
JENKINS_SWARM_VERSION
NLSPATH
GIT_COMMIT
JENKINS_HOME
MAVEN_HOME
PATH
RUN_DISPLAY_URL
PWD
JAVA_HOME
HUDSON_URL
JAVA_VERSION
JOB_NAME
POM_VERSION
BUILD_VERSION
XFILESEARCHPATH
BUILD_DISPLAY_NAME
BUILD_ID
JENKINS_URL
JOB_BASE_NAME
GIT_PREVIOUS_SUCCESSFUL_COMMIT
POM_PACKAGING
HOME
GIT_SSL_NO_VERIFY
SHLVL
M2_HOME
GIT_BRANCH
EXECUTOR_NUMBER
JENKINS_SERVER_COOKIE
GIT_URL
NODE_LABELS
HUDSON_HOME
NODE_NAME
BUILD_NUMBER
JOB_DISPLAY_URL
HUDSON_COOKIE
Run Code Online (Sandbox Code Playgroud)
更新:这里有一些新信息.GIT_ASKPASS使用这些?...而且我注意到Jenkins正在使用GIT_ASKPASS进行检查.
+ git help -a
+ grep credential-
credential-cache remote-ext
credential-cache--daemon remote-fd
credential-gnome-keyring remote-ftp
credential-store remote-ftps
Run Code Online (Sandbox Code Playgroud)