import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.model.MavenId;
import org.jetbrains.idea.maven.project.*;
+import org.jetbrains.idea.maven.statistics.MavenImportCollector;
import org.jetbrains.idea.maven.utils.MavenLog;
import org.jetbrains.idea.maven.utils.MavenUtil;
import org.jetbrains.jps.model.java.compiler.JpsJavaCompilerOptions;
boolean removed = false;
for (Library each : unusedLibraries) {
- if (!isDisposed(each) && MavenRootModelAdapter.isMavenLibrary(each) && !MavenRootModelAdapter.isChangedByUser(each)) {
- myModelsProvider.removeLibrary(each);
- removed = true;
+ if (!isDisposed(each) && MavenRootModelAdapter.isMavenLibrary(each)) {
+ if (!MavenRootModelAdapter.isChangedByUser(each)) {
+ myModelsProvider.removeLibrary(each);
+ removed = true;
+ }
+ else {
+ MavenImportCollector.HAS_USER_MODIFIED_IMPORTED_LIBRARY.log(myProject);
+ }
}
}
return removed;
import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
+import org.jetbrains.idea.maven.statistics.MavenImportCollector;
import org.jetbrains.idea.maven.utils.MavenUtil;
import org.jetbrains.idea.maven.utils.Path;
import org.jetbrains.idea.maven.utils.Url;
if (e instanceof LibraryOrderEntry) {
if (Registry.is("maven.always.remove.bad.entries")) {
- if (!isMavenLibrary((LibraryOrderEntry)e)) continue;
+ if (!isMavenLibrary((LibraryOrderEntry)e)) {
+ MavenImportCollector.HAS_USER_ADDED_LIBRARY_DEP.log(myRootModel.getProject());
+ continue;
+ }
}
else {
- if (!isMavenLibrary(((LibraryOrderEntry)e).getLibrary())) continue;
+ if (!isMavenLibrary(((LibraryOrderEntry)e).getLibrary())) {
+ MavenImportCollector.HAS_USER_ADDED_LIBRARY_DEP.log(myRootModel.getProject());
+ continue;
+ }
}
}
if (e instanceof ModuleOrderEntry) {
if (m != null &&
!MavenProjectsManager.getInstance(myRootModel.getProject()).isMavenizedModule(m) &&
ExternalSystemModulePropertyManager.getInstance(m).getExternalSystemId() == null) {
+ MavenImportCollector.HAS_USER_ADDED_MODULE_DEP.log(myRootModel.getProject());
continue;
}
}
--- /dev/null
+// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package org.jetbrains.idea.maven.statistics
+
+import com.intellij.internal.statistic.eventLog.EventLogGroup
+import com.intellij.internal.statistic.service.fus.collectors.CounterUsagesCollector
+
+class MavenImportCollector : CounterUsagesCollector() {
+ companion object {
+ val GROUP = EventLogGroup("maven.import", 1)
+
+ @JvmField
+ val HAS_USER_ADDED_LIBRARY_DEP = GROUP.registerEvent("hasUserAddedLibraryDependency")
+
+ @JvmField
+ val HAS_USER_ADDED_MODULE_DEP = GROUP.registerEvent("hasUserAddedModuleDependency")
+
+ @JvmField
+ val HAS_USER_MODIFIED_IMPORTED_LIBRARY = GROUP.registerEvent("hasUserModifiedImportedLibrary")
+ }
+
+ override fun getGroup(): EventLogGroup {
+ return GROUP
+ }
+}
\ No newline at end of file
<statistics.projectUsagesCollector implementation="org.jetbrains.idea.maven.statistics.MavenSettingsCollector"/>
<statistics.counterUsagesCollector implementationClass="org.jetbrains.idea.maven.statistics.MavenActionsUsagesCollector"/>
+ <statistics.counterUsagesCollector implementationClass="org.jetbrains.idea.maven.statistics.MavenImportCollector"/>
<statistics.counterUsagesCollector groupId="build.maven.packagesearch" version="2"/>
<registryKey key="maven.linear.import" defaultValue="false"