我正在使用Spring Boot创建一个多模块项目,用于部署我的应用程序并使用gradle作为我的构建工具。
现在,我正在为项目中的某些模块创建独立部署。一些项目需要嵌入式tomcat,有些则不需要。所有常见的依赖项都放在一个公共项目上,所有其他模块都依赖于这个共同的项目。
大多数其他部署模块都需要嵌入式tomcat应用程序服务器和其他Web组件(由org.springframework.boot'提供,名称:' spring-boot-starter-web),因此已包含在内在common.gradle中用于公共项目
以下是常见项目的build.gradle:
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
现在,将要独立部署的其他模块之一不需要这个嵌入式tomcat和其他包含spring-boot-starter-web的mvc jar,但需要来自普通项目的其他传递依赖项。因此,我想排除
的传递依赖compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion
compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: springBootVersion
compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: springBootVersion
compile group: 'org.springframework.data', name: 'spring-data-jpa', version: springDataJpaVersion
我在build.gradle其他项目中这样做
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion
但是在构建它时会抛出这个错误:
启动失败:构建文件 ' /Users/user1/Documents/repo/storm/build.gradle' ;: 30:期待'}', 发现',' @第30行,第44栏。 oup' org.springframework.boot',模块:'
将其更改为:
dependencies {
compile project(':common') {
exclude group 'org.springframework.boot', module:'spring-boot-starter-web'
}
}
投掷:
找不到参数[parent-project name] on的方法exclude() 项目':普通'。
如何在此处排除传递依赖?
答案 0 :(得分:3)
您需要exclude
上的compile
而不是project
上的dependencies {
compile(project(':common')) {
exclude group: 'org.springframework.boot', module:'spring-boot-starter-web'
}
}
:
public class TimeCompleteDialog implements OnClickListener {
private Activity act;
private LayoutInflater inflater;
/**UI Components*/
private Dialog dialog;
private TextView txt_msg;
private ImageButton btn_cancal;
public TimeCompleteDialog(Activity a) {
this.act=a;
inflater=LayoutInflater.from(act);
dialog=new Dialog(a);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
}
/**Attaching the dialog to custom views*/
private void buildDialog(){
View v=inflater.inflate(R.layout.time_complete_dialog,null,false);
dialog.setContentView(v);
dialog.setCancelable(false);
this.findDialogViews(v);
}
public void showDialog(){
this.buildDialog();
this.dialog.show();
}
/**Find the ids of the custom views components*/
private void findDialogViews(View view){
txt_msg=(TextView)view.findViewById(R.id.txt_time_up);
btn_cancal=(ImageButton)view.findViewById(R.id.btn_time_cancel);
btn_cancal.setOnClickListener(this);
/**Changing the state of the views*/
this.renderViews();
}
private void renderViews() {
txt_msg.setText("Sorry Time is up.\nTry Harder Next Time");
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_time_cancel:
this.dialog.dismiss();
act.finish();
break;
default:
break;
}
//Closing the dialog
}
}