有mvn依赖:list打印出除了子组中的那些工件以外的所有工件?

时间:2016-07-04 10:49:55

标签: maven maven-dependency-plugin

我尝试列出com.example中的所有工件,但com.example.foo.bar中的工件除外。

对于mvn dependency:tree,我可以这样做:

mvn dependency:tree -Dexcludes=*bar* -Dincludes=com.example.*

然而,当我尝试:

mvn dependency:list -DexcludeGroupIds=com.example.foo.bar -DincludeGroupIds=com.example

Maven仍列出bar中的所有内容。

问题:如何使用dependency:tree镜像list的结果?

1 个答案:

答案 0 :(得分:1)

public class MainActivity extends Activity implements OnItemClickListener { ListView apps; PackageManager packageManager; ArrayList<String> checkedValue; Button bt1; private ShareActionProvider mShareAction; ApplicationInfo pi = new ApplicationInfo(); public static final String PREF_PROFILE3 = "pref_profile3"; public static final String PROFILE3 = "profile3"; Context context = this; SharedPreferences pkg; CheckBox cb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); needPermissionForBlocking(context); bt1 = (Button) findViewById(R.id.button1); apps = (ListView) findViewById(R.id.listView1); apps.setChoiceMode(ListView.CHOICE_MODE_SINGLE); packageManager = getPackageManager(); checkedValue = new ArrayList<String>(); Listadapter Adapter = new Listadapter(this, Utilities.getInstalledApplication(this), packageManager); apps.setAdapter(Adapter); apps.setOnItemClickListener(this); bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "all" + checkedValue, Toast.LENGTH_LONG).show(); } }); } @Override public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) { // TODO Auto-generated method stub cb = (CheckBox) v.findViewById(R.id.checkBox1); TextView tv = (TextView) v.findViewById(R.id.textView); pi = (ApplicationInfo) arg0.getItemAtPosition(position); cb.performClick(); if (cb.isChecked()) { checkedValue.add(tv.getText().toString()); } else if (!cb.isChecked()) { checkedValue.remove(tv.getText().toString()); } } } tree的包含/排除之间的主要区别在于前者需要模式,而后者需要完全匹配。

例如,list目标的includes选项可以有一个值:

  

其中每个模式段都是可选的,并支持完整和部分*通配符。

另一方面,tree目标的includeGroupIds选项很简单:

  

要包含的逗号分隔的GroupId列表。

给出以下依赖示例:

list

如果我们只想包含<dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> </dependency> <!-- other dependencies with different groupIds than the prefix org.apache --> ... </dependencies> 但要排除commons这两个目标,我们应该运行:

logging

请注意应用于两种模式的通配符。我们需要两种选择,因为第一种选择并不排除第二种选择。

对于这种情况下的mvn dependency:tree -Dincludes=org.apache.* -Dexcludes=*logging* 目标,仅包含就足够了,因为我们只列出了我们真正想要的内容:

list