我是Gradle的新手,我正在阅读文档,但我不了解它的某些部分.其中一个部分与buildscript
块连接.它的目的是什么?
如果构建脚本需要使用外部库,则可以将它们添加到构建脚本本身的脚本类路径中.您可以使用buildscript()方法执行此操作,并传入一个声明构建脚本类路径的闭包.
Run Code Online (Sandbox Code Playgroud)buildscript { repositories { mavenCentral() } dependencies { classpath group: 'commons-codec', name: 'commons-codec', version: '1.2' } }
好的但是有什么区别:
repositories {
mavenCentral()
}
dependencies {
compile group: 'commons-codec', name: 'commons-codec', version: '1.2'
}
Run Code Online (Sandbox Code Playgroud)
例如,为什么有必要使用buildscript
?
从Gradle 1.7开始,有一个新的公共存储库JCenter.
repositories {
jcenter()
}
Run Code Online (Sandbox Code Playgroud)
所以我想问一下Maven Central的所有罐子是否都是这个回购的一部分?如果不是JCenter repo由什么组成的?JCenter中的JCenter是否更可靠作为停机时间?
我在Java 8中经常听说'糖化'和'贬低',这些术语是什么意思?他们是概念性的还是语法式的.
一些例子:
默认迭代循环重新发布到java
编辑中的句法糖观察.
我的问题有点普遍,但它也与Gradle有关.
为什么我们需要编译和运行时配置?
当我编译一些东西时,我需要工件来转换我的字节码中的java类,所以我需要编译配置,但为什么需要运行时配置我还需要别的东西在JVM中运行我的应用程序?
对不起,如果它听起来很愚蠢,但我不明白.
我有一个任务:
task info<<{
println "Gradle — ??????? ?????????????? ??????, ??????????? ?? ????????? Apache Ant ? Apache Maven, ?? ??????????????? DSL ?? ????? Groovy ?????? ???????????? XML-???????? ????? ????????????? ???????????? ???????."
}
Run Code Online (Sandbox Code Playgroud)
当我使用commadn时
gradle info -Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)
文字没有正确显示.怎么解决?谢谢.
我是Spring-boot(版本1.3.6)和Quartz的新手,我想知道使用Spring-scheduler创建任务有什么区别:
@Scheduled(fixedRate = 40000)
public void reportCurrentTime() {
System.out.println("Hello World");
}
Run Code Online (Sandbox Code Playgroud)
和石英方式:
0. Create sheduler.
1. Job which implements Job interface.
2. Create JobDetail which is instance of the job using the builder org.quartz.JobBuilder.newJob(MyJob.class)
3. Create a Triger
4. Finally set the job and the trigger to the scheduler
Run Code Online (Sandbox Code Playgroud)
在代码中:
public class HelloJob implements Job {
public HelloJob() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException
{
System.err.println("Hello!");
}
}
Run Code Online (Sandbox Code Playgroud)
和sheduler:
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory(); …
Run Code Online (Sandbox Code Playgroud) 我有dir,其中另一个任务创建文件和目录所以在这个目录中有文件,目录,子目录,文件,等等.我想把所有文件和目录的绝对路径放在一个列表中.
def listNames = project.fileTree('dir')
Run Code Online (Sandbox Code Playgroud)
但只有文件包含在列表中,目录丢失.如何收集所有这些?
我是Gradle构建工具的新手,现在我正在阅读用户指南,但无法完全理解评估和执行阶段之间的区别.
在配置阶段,项目对象已配置并且已创建DAG,但我们有afterEvaluate,那么在此处评估什么?评估任务依赖性还是什么?
该摇篮用户指南经常提到摇篮是声明和使用建立按约定.这是什么意思?
根据我的理解,这意味着,例如,在java插件中src/main/java
,必须有一些类似于source的约定,测试必须在src/main/test
,资源在src/main/resources
,准备好的jar build/libs
等等.但是,Gradle并不强制您使用这些约定,您可以根据需要更改它们.
但是对于第二个概念,我对理解有更大的问题.像SQL一样,你说你想对你的查询做什么,但没有说数据库系统将如何获取它们,使用哪种算法来提取数据等.
请告诉我更多正确理解这些概念.谢谢.
我有一个Spring应用程序,在其中我不使用xml配置,只使用Java Condfig.一切都还可以,但是当我尝试测试时,我遇到了在测试中启用组件的问题.所以让我们开始我有一个界面
@Repository
public interface ArticleRepository extends CrudRepository<Page, Long> {
Article findByLink(String name);
void delete(Page page);
}
Run Code Online (Sandbox Code Playgroud)
和组件/服务
@Service
public class ArticleServiceImpl implements ArticleService {
@Autowired
private ArticleRepository articleRepository;
...
}
Run Code Online (Sandbox Code Playgroud)
我不想使用xml配置,因此对于我的测试,我尝试仅使用Java配置测试ArticleServiceImpl.所以为了测试目的,我做了:
@Configuration
@ComponentScan(basePackages = {"com.example.core", "com.example.repository"})
public class PagesTestConfiguration {
@Bean
public ArticleRepository articleRepository() {
// (1) What to return ?
}
@Bean
public ArticleServiceImpl articleServiceImpl() {
ArticleServiceImpl articleServiceImpl = new ArticleServiceImpl();
articleServiceImpl.setArticleRepository(articleRepository());
return articleServiceImpl;
}
Run Code Online (Sandbox Code Playgroud)
}
在articleServiceImpl()我需要把实例articleRepository(),但它是一个接口.如何使用新关键字创建新对象?是否可以在不创建xml配置类的情况下启用自动装配?在测试期间仅使用JavaConfiguration时可以启用awtow吗?
gradle ×7
java ×4
build ×2
spring ×2
autowired ×1
classpath ×1
convention ×1
declarative ×1
dependencies ×1
directory ×1
evaluation ×1
execution ×1
file ×1
filetree ×1
java-8 ×1
repository ×1
semantics ×1
spring-mvc ×1
task ×1
text ×1
utf-8 ×1
xml ×1