小编kup*_*fic的帖子

如何强制Gradle为两个依赖项设置相同的版本?

我使用以下两个依赖项:

compile 'com.google.guava:guava:14.0.1'
compile 'com.google.guava:guava-gwt:14.0.1'
Run Code Online (Sandbox Code Playgroud)

两者必须是相同的版本才能正常工作.由于我的其他依赖项使用更高版本,因此Gradle为每个依赖项使用不同的版本.

我通过运行找到了这个gradle dependencies:

compile - Compile classpath for source set 'main'.
+--- com.google.guava:guava:14.0.1 -> 17.0
+--- com.google.guava:guava-gwt:14.0.1
|    +--- com.google.code.findbugs:jsr305:1.3.9
|    \--- com.google.guava:guava:14.0.1 -> 17.0 
Run Code Online (Sandbox Code Playgroud)

如何强制Gradle为这两个依赖项设置相同的版本?

java dependencies gradle

60
推荐指数
7
解决办法
7万
查看次数

如何在IntelliJ IDEA中为所有项目设置默认项目位置?

我想知道是否有办法为所有IntelliJ项目设置默认位置,类似于Eclipse中的工作区概念?

因为我在创建新项目时总是需要更改IDEA项目位置.

java intellij-idea android-studio

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

使用Spring Boot和Spock进行集成测试

@IntegrationTest使用Spock 运行集成测试(例如)的最佳方法是什么?我想引导整个Spring Boot应用程序并执行一些HTTP调用来测试整个功能.

我可以使用JUnit(首先运行app然后执行测试):

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyServer.class)
@WebAppConfiguration
@IntegrationTest
class MyTest {
   RestTemplate template = new TestRestTemplate();

   @Test
   public void testDataRoutingWebSocketToHttp() {
      def a = template.getForEntity("http://localhost:8080", String.class)
      println a
   }
}
Run Code Online (Sandbox Code Playgroud)

但是使用Spock,应用程序无法启动:

@SpringApplicationConfiguration(classes = MyServer.class)
@WebAppConfiguration
@IntegrationTest
class MyTestSpec extends Specification {

   RestTemplate template = new TestRestTemplate();

   def "Do my test"() {
      setup:
      def a = template.getForEntity("http://localhost:8080", String.class)

      expect:
      println a
   }
}
Run Code Online (Sandbox Code Playgroud)

当然,对于Spock,我在Gradle构建文件中指定了正确的依赖项:

...
dependencies {
   testCompile 'org.spockframework:spock-core:0.7-groovy-2.0'
   testCompile 'org.spockframework:spock-spring:0.7-groovy-2.0'
}
...
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

java groovy gradle spock spring-boot

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

如何在Clojure中实现For循环

我想在Clojure中实现这个小代码,但我很挣扎:

struct mystruct {
   int id;
   int price;
};

mystruct mydata[10];

for (int i=0; i<10; i++) {
  myfunction(mydata[i].id, mydata[i].price);
  //other things...
}
Run Code Online (Sandbox Code Playgroud)

我是Clojure的初学者,这对我来说真的很复杂,但是我真的很想学习,因为我知道Clojure有很大的优势,比如使用refs ......

如果有人能帮助我,我真的很感激.谢谢!!

arrays loops for-loop clojure

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

Maven - 在当前项目和插件组中找不到前缀'tomcat7'的插件

我创建了一个Maven项目.这是结构:

-parent
    -core
    -web
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用该命令进行部署时mvn tomcat7:deploy,我收到以下错误:

No plugin found for prefix 'tomcat7' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo]
Run Code Online (Sandbox Code Playgroud)

我把这个配置放在pom.xml(web项目)中:

<build>
    <finalName>MavenWeb</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.0</version>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

java tomcat maven

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

使用gradle构建时读取maven settings.xml?

我有一个maven settings.xml位于:

 /home/u123/.m2/settings.xml
Run Code Online (Sandbox Code Playgroud)

我指定一个远程maven存储库:

<?xml version="1.0" encoding="UTF-8"?>
<settings>
  <profiles>
    <profile>
      <id>default</id>
      <repositories>
          <repository>
              <id>my.repo</id>
               <url>http://myrepo/ </url>
          </repository>
      </repositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>default</activeProfile>
  </activeProfiles>
</settings>
Run Code Online (Sandbox Code Playgroud)

在这个repo中,我已经部署了一个工件 - 实际上它是一个gradle插件.

现在我尝试使用下面的build.gradle文件构建另一个需要使用此插件/工件的项目:

apply plugin: 'java'
apply plugin: 'maven'

buildscript {
    dependencies {
        classpath 'com.test:my-gradle-plugin:1.0.0-SNAPSHOT'
    }
}
Run Code Online (Sandbox Code Playgroud)

但是构建失败了:

...
> Could not find group:com.test, module:my-gradle-plugin, version:1.0.0-SNAPSHOT.
...
Run Code Online (Sandbox Code Playgroud)

即使我有上面指向远程maven存储库的settings.xml文件,Gradle也找不到my-gradle-plugin.

如果我 build.gradle文件中指定存储库,它可以工作:

buildscript {
    repositories {
        maven {
            url "http://myrepo/"
        }
    }
    dependencies {
        classpath 'com.test:my-gradle-plugin:1.0.0-SNAPSHOT'
    }
}
Run Code Online (Sandbox Code Playgroud)

根据这篇文章:

http://forums.gradle.org/gradle/topics/have_mavenlocal_check_m2_home_conf_settings_xml

似乎gradle考虑了settings.xml文件,那么出了什么问题呢?

gradle maven

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

多个存储库的Maven设置

我在settings.xml中有以下内容

<mirrors>
       <mirror>
          <id>paid-jars</id>
          <name>jars with license</name>
          <url>http://url:8081/nexus/content/repositories/paidjars/</url>
          <mirrorOf>!central</mirrorOf>
      </mirror>
      <mirror>
          <id>Org-central</id>
          <name>mirror of central</name>
          <url>http://url:8081/nexus/content/repositories/central/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
  </mirrors>
Run Code Online (Sandbox Code Playgroud)

在pom.xml中我有两个罐子

  1. apache-commons.jar(我假设从中心下载)
  2. licensed.jar(我假设从付费罐子下载)

但是当我运行maven clean install它时,它试图从Org-central下载licensed.jar.

如何让它使用付费罐子下载?是否有可能首先进入Org-central,如果失败,它会尝试付费罐子?如果是这样,怎么样?我不想把repo条目放在pom.xml中


将Settings.xml

<?xml version="1.0" encoding="UTF-8"?>    
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <proxies>    
    <proxy>
      <id>Proxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>username</username>
      <password>******</password>
      <host>host.url</host>
      <port>8080</port>
      <nonProxyHosts>local.net|internal.com</nonProxyHosts>
    </proxy>
  </proxies>
 <mirrors>
       <mirror>
          <id>paid-jars</id>
          <name>jars with license</name>
          <url>http://url:8081/nexus/content/repositories/paidjars/</url>
          <mirrorOf>!central</mirrorOf>
      </mirror>
      <mirror>
          <id>Org-central</id>
          <name>mirror of central</name>
          <url>http://url:8081/nexus/content/repositories/central/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
  </mirrors>
  <profiles>
      <profile>
          <id>compiler</id>
          <properties>
              <JAVA_1_7_HOME>C:\Program Files (x86)\Java\jdk1.7.0_51\bin</JAVA_1_7_HOME>
          </properties>
      </profile>
  </profiles>
</settings>
Run Code Online (Sandbox Code Playgroud)

java build repository nexus maven-3

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

页面中的多个表单标签或一个表单标签?

我刚开始HTML5,想知道一般我们是否应该使用一个<form>每个Web页面或多个表单标签标签.

也许这取决于具体情况,但这里有两种不同的情况:

  1. 一个注册表单
  2. 具有多个子表单的主页:登录,加入邮件列表等.

将表格标签放在另一个标签内是不是很糟糕,还是每个标准都可以?

谢谢

编辑 您能否以简单的方式解释表单标记的用途是什么?

html xhtml html5

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

在Spring,Maven和Eclipses中处理XML文件中的属性值的最佳方法

我正在开发一个Spring WebFlow项目,它在XML文件中有很多属性值,正如Spring程序员所知道的那样.我有数据库用户名,密码,URL等.

我们正在使用Eclipse与Spring WebFlow和Maven.我们正在尝试让SA执行构建,但SA不想进入XML文件来更改值,但另一方面,我们不知道生产值.我们如何使用它?

eclipse svn spring spring-mvc maven

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

注释处理器,生成编译器错误

我试图创建一个自定义的注释,例如,可以确保一个字段或方法既publicfinal,并会产生一个编译时错误,如果字段或方法是不能同时publicfinal,如这些例子:

// Compiles
@PublicFinal
public final int var = 2;

// Compiles
@PublicFinal
public final void myMethod {}

// Compile time error
@PublicFinal
private final int fail = 2;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经制作了两个自定义注释界面:

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Retention(RetentionPolicy.SOURCE)
@Target({ElementType.METHOD, ElementType.FIELD})
public @interface PublicFinal { }
Run Code Online (Sandbox Code Playgroud)

并且Processor:

import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.lang.model.element.Modifier;
import javax.lang.model.element.TypeElement;
import java.util.Set;

@SupportedAnnotationTypes("PublicFinal")
public class PubicFinalProcessor extends AbstractProcessor
{
    @Override …
Run Code Online (Sandbox Code Playgroud)

java annotations javac

18
推荐指数
1
解决办法
6478
查看次数