我尝试列出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
的结果?
答案 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