在build.gradle文件中排除传递依赖项时构建项目时出错

时间:2015-09-28 07:53:59

标签: gradle spring-boot build.gradle

我正在使用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()   项目':普通'。

如何在此处排除传递依赖?

1 个答案:

答案 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

    }
}